您的位置:首页 > 编程语言 > Java开发

Java反射机制

2015-10-10 22:01 316 查看
反射机制概念:

[code]J***A反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。


那么Java是如何动态的获取对象的方法和属性的呢?

[code]JVM需要哪个类,classLoder就会去加载这个类,让后根据.class文件生成一个独一无二的class对象,该class对象记载了该类所有的属性和方法;让后JVM就根据该类的实例进行一些列的操作
class对象一般都是由虚拟机调用的(虽然我们也可以创建),基于此,实现了Java的反射机制


获取class对象的三种机制:

1.通过Object类的getClass()方法。例如:

Class c1 = new String(“”).getClass();

2.通过Class类的静态方法——forName()来实现

Class c2 = Class.forName(“MyObject”);

3.如果T是一个已定义的类型的话,在java中,它的.class文件名:T.class就代表了与其匹配的Class对象,例如:

Class c3 = Manager.class;

Class c4 = int.class;

Class c5 = Double[].class;

通过class对象获取类的方法和属性:

获取方法:

getDeclaredMethods()

获取所有的方法

getDeclaredMethod(“方法名”,参数类型.class,……)

获得特定的方法

获取构造方法:

getDeclaredConstructors()

获取所有的构造方法

getDeclaredConstructor(参数类型.class,……)

获取特定的构造方法

获取成员:

getDeclaredFields()

获取所有的成员变量

getDeclaredField(“id”);

获取特定的成员
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: