java 反射机制与Class类 学习个人总结

来源:互联网 发布:netbeans mac 快捷键 编辑:程序博客网 时间:2024/04/28 04:23

基本定义

java反射机制:在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。简而言之,我们可以从.class逆向到.java。
Class类:在Java中,每个类都有一个相应的Class对象。也就是说,当我们编写一个类,编译完成后,在生成的.class文件中,就会产生一个Class对象,用于表示这个类的类型信息。
关系:Class类是java反射机制的基石。

认识Class类

Class对象获取方式:Class构造方法是private的,是不让开发者自己构造Class对象,而在jre运行环境里,是从底层构造的Class对象,根本不在于如何修饰它。

  • 通过Object类的getClass()方法获取
Person p = new Person();Class pClass = p.getClass();


  • 通过Class类的静态方法forName(String)方法获取
Person p = new Person();Class pClass = Class.forName("Person");

  • 通过类名.class获取
Person p = new Person();Class pClass = Person.class;
Class类的方法:
这里列举几个简单的方法(具体方法可以查看java API)
newInstance() 返回目标类的对象实例。
getPackage()返回Package对象获得该类的存放路径;
getName()返回String对象获得该类的名称;
getConstructors()返回Constructor型数组获得所有权限为public的构造方法。
getMethods()返回Method型数组获得所有权限为public的成员方法。
getFields()返回Field型数组获得所有权限为public的属性。
通过Class类的对象生成目标类的实例
使用newInstance();方法生成对象

Person p = new Person();Class pClass = p.getClass();Object obj = pClass.newInstance();

a

原创粉丝点击