Java的反射机制

什么是Java的反射机制

Java的反射机制,是指在Java程序运行时,动态获取和访问类和对象的属性、方法等自身信息的功能机制。

认识Class

Class即元类,是用来描述类的类,Class类的每一个对象负责描述一个类。

Class对象的获取

通用的Class的对象获取方式有三种

  1. 通过类的静态属性class获取,例如:Class c1 = String.class;
  2. 通过字符串形式的类的全限定名称获取,例如 Class c2 = Class.forName(“java.lang.String”);
  3. 通过类的对象获取,例如 Class c3 = new String(“abc”).getClass();

专用于描述包装类的Class对象的方式:Class c = Integer.TYPE;

注意:同一个类加载器下,无论以何种方式获得的描述同一个类的元类对象都是同一个对象。

Class的方法

  1. 实例方法getName():获得元类对象所描述类的全限定名称;
  2. 实例方法getSimpleName():获得元类对象所描述类的简称(即不带包的类名)
  3. 实例方法newInstance() : 创建元类对象所描述类的对象,前提是所描述类具有public的无参构造方法;
  4. 实例方法getField(String):根据元类对象所描述类的属性名称,获取public属性的描述对象(Field类的对象);
  5. 实例方法getFields():获取元类对象所描述类的所有public属性的描述对象。
  6. 实例方法getMethod(String, Class…):根据元类对象所描述类的方法名称和参数类型,获取public方法的描述对象(Method类的对象);
  7. 实例方法getMethods():获取元类对象所描述类的所有public方法的描述对象;
  8. 实例方法getConstructor(Class…):根据元类对象所描述类的构造参数类型,获取public构造方法的描述对象(Constructor类的对象);
  9. 实例方法getConstructors():获取元类对象所描述类的所有public构造方法的描述对象。

认识Field类

Field类是属性的描述类,每一个Field对象描述一个属性。

Field类的常用方法

  1. 实例方法set(Object obj, Object value):给Field对象所描述属性赋值;
  2. 实例方法get(Object obj):获取Field对象所描述属性的值。

认识Method类

Method类是方法的描述类,每一个Method对象描述一个方法。

Method类常用方法

  1. 实例方法getName():获得Method对象所描述方法的名称;
  2. 实例方法getParameterCount():获得Method对象所描述方法的参数数量;
  3. 实例方法Class[] getParameterTypes():获得Method对象所描述方法的参数类型;
  4. 实例方法invoke(Object, Object…):执行Method对象所描述方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值