读书人

菜鸟学Java(二十一)-反射机制

发布时间: 2013-10-23 11:39:13 作者: rapoo

初学者学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
不错 加油

读书人网 >编程

热点推荐