初学者学Java(二十一)-------反射机制
初识反射机制以前我们访问对象的方法和属性,都是在编译期的时候完成的。但Java可不可以在运行期来实现调用某个类的方法和属性,这个当然是可以的,Java就是通过反射来实现的,反射的英文是Reflection。 Java 反射机制主要提供了以下功能:
? 在运行时判断任意一个对象所属的类。
? 在运行时构造任意一个类的对象。
? 在运行时判断任意一个类所具有的成员变量和方法。
? 在运行时调用任意一个对象的方法下面我来说一下Java是如何来完成这个工作了。我们首先来介绍一个最基本的类Class类。反射的基础--------Class类在Java中每个类都有一个且仅有一个Class对象,不管这个类生成多少个新的对象,他都只有一个。这个对象描述了这个类的包括名称在内的一些信息,要想使用反射必须先得到Class对象。下面我们写个程序来测试一下。我们来以String类测试一下:
package reflection;import java.lang.reflect.*;class A{public A(int a){}}public class TestOne {public static void main(String[] args) throws Exception {Class<A> classType = A.class;Constructor<A> con = classType.getConstructor(new Class[]{int.class});A a = con.newInstance(new Object[]{1});}}Class类的getConstructor();方法是用来获取构造方法类的对象,参数是构造方法的参数类型,因为同一个类不同的构造方法只有参数不同,所以这样就可以获取类的构造方法,如果没有参数就是调用无参构造函数。
创建了对象后我们就要调用他的方法和属性,分别用到了
Method类,Field 类。
调用方法:
- 2楼csh624366188昨天 21:31
- perfect!加油!
- Re: yejinwei1220昨天 21:39
- 回复csh624366188n我这排版有进步没?
- 1楼u012131080昨天 19:11
- 不错 加油
getConstructor();方法是用来获取构造方法类的对象,参数是构造方法的参数类型,因为同一个类不同的构造方法只有参数不同,所以这样就可以获取类的构造方法,如果没有参数就是调用无参构造函数。
创建了对象后我们就要调用他的方法和属性,分别用到了
Method类,Field 类。
调用方法:
- 2楼csh624366188昨天 21:31
- perfect!加油!
- Re: yejinwei1220昨天 21:39
- 回复csh624366188n我这排版有进步没?
- 1楼u012131080昨天 19:11
- 不错 加油
创建了对象后我们就要调用他的方法和属性,分别用到了
Method类,Field 类。
调用方法:
- 2楼csh624366188昨天 21:31
- perfect!加油!
- Re: yejinwei1220昨天 21:39
- 回复csh624366188n我这排版有进步没?
- 1楼u012131080昨天 19:11
- 不错 加油
调用方法:Method类,Field 类。
- 2楼csh624366188昨天 21:31
- perfect!加油!
- Re: yejinwei1220昨天 21:39
- 回复csh624366188n我这排版有进步没?
- 1楼u012131080昨天 19:11
- 不错 加油