反射(获取字节码文件等)

获取字节码文件对象

方式一 、

Class clazz = Person. class

方式二:

对象名.getClass() ;

举例:

Class clazz

new Person() .getClass() ;

方式三:

Class. forName ("类的全路径名") ;

举例:

Class clazz = Class. forName ("com. domain. Person") ;

Class类中的方法?

public object newInstance(): 创建对象

2.如何获取构造方法对象

public Constructor getConstructor (Class. .. parameterTypes) :获取公共的构造方法

public Constructor[] getConstructors(): 获取所有的公共的构造方法

public Constructor getDeclaredConstructor (Class. . . parameterTypes):获取构造方法

public Constructor[ ] getDecl aredCons tructors ():获取所有的构造方法

Constructor类中的方法?

public T newInstance (object... initargs): 创建对象

public void setAccessible (boolean flag) :

反射的对象在使用时应该取消Java语言访问检查

一般我们传递的参数都是true

暴力反射:使用反射获取私有成员的时候,使用普通的对象是获取获取不到的,必须使用

带declared的方法,而且需要设置setAccessible,值true可以获取到

3.如何获取字段(成员变量,属性)对象

public Field getField (String name) :1获取公共的成员变量

public Field[] getFields(): 获取所有的公共的成员变量

public Field getDeclaredField(String name): 获取成员变量

public Field[] getDeclaredFields(): 获取所有的成员变量

Field类中的方法?

public void set (Object obj, Object value): 给具体的哪个对象赋什么值

public void setAccessible (boolean flag) :

反射的对象在使用时应该取消Java语言访问检查

般我们传递的参数都是true

一般我们传递的参数都是true

暴力反射:使用反射获取私有成员的时候,使用普通的对象是获取获取不到的,必须使用

带declared的方法,而且需要设置setAccessible,值true可以获取到

4.如何获取普通的成员方法对象

public Method getMethod (String name, Class... parameterTypes): 获取公共的方法对象

public Method[j getMethods(): 获取所有的公共的方法对象

public Method getDeclaredMe thod (String name, C1ass... parameterTypes):获取方法对象

public Method[] getDeclaredMethods(): 获取所有的方法对象

Method类中的方法?

public object invoke (object obj ,0bject... args)

返回值:就是调用方法之后的返回值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值