反射总结

1、获取字节码文件对象的三种方式:1、对象.getClass() 2、类名.class 3、Class clazz=Class.forName("带包名的类名")。三者区别:1、出现的时期不同:Class.forName()在运行时加载;Class.class和getClass()是在编译器加载;2、Class.class只是在编译时用来存放类的相关信息,并没有实例化对象;而getClass()既实例化了对象,又存放了类信息。

2、通过getFields()和getMethods()方法获得权限为public的成员变量和方法时,将包含从超类中继承到的成员变量和方法;而getDeclaredFields()和getDeclaredMethods()方法只是获得在本类中定义的所有成员变量和方法。

3、getDeclaredConstructors()方法获得的构造方法按声明顺序的相反顺序返回。

4、Constructor类的newInstance(Object...para)方法可以利用指定参数创建一个该类对象,如果未设置参数则用无参构造方法创建一个对象,该方法的返回值类型为Object。

5、Constructor类、Method类、Field类的setAccessible()方法可以设置是否能访问被private修饰的对象,getModifiers()方法可以获得能解析出该构造方法所采用修饰符的参数。

6、java.lang.reflect.Modifier类可以解析出getModifiers()方法返回值所表示的修饰符信息,在该类中提供了一系列用来解析的静态方法,既可以查看是否被指定的修饰符修饰,还可以以字符串的形式获得所有修饰符。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值