Java反射总结

基本定义

  • 动态加载一个指定的类,并获取该类的所有内容,将字节码文件封装成对象。

基本步骤

  • 获得class对象,就是获取到指定的名称的字节码对象。
  • 实例化对象,获得类的属性,方法或构造函数。
  • 访问属性,调用方法,根据构造函数创建对象。

获取class对象的三种方式

通过对象的getClass()方法来获取

  • obj.getClass()
    Object obj = new Cat();
    Class clazz1 = obj.getClass();// 获得对象具体的类型
    如果拿到了某个对象,却不知道该对象是什么类型,此方法可以获取到类型
    用于获取对象的类型

通过类名来获取

  • Class.forName(className)
    String className = “com.fall.hat.Cat”;
    Class clazz1 = Class.forName(className);// 此对象代表Cat.class
    用于类加载

明确的获取某个类的Class对象

  • Class clazz1 = Cat.Class;
    主要用于传参

反射的用法

反射类的成员方法

Method method = clazz1.getMethod(methodName,new Class[]{paramClazz1,ParamClazz2,…});
method.invoke();

反射类的构造函数

Constructor con = clazz1.getConstructor(new Class[]{paramClazz1, paramClazz2,…})
con.newInstance(params…)

反射类的属性

Field field = clazz1.getField(fieldName);
field.setAccessible(true);
field.setObject(value);

  • 获取到字节码文件对象之后,最终都要创建指定类的对象
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值