JAVA的反射机制

反射是框架技术的灵魂,是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法。 对于任意一个对象,都能够调用它的任意属性和方法 。这种动态获取信息以及动态调用对象方法的功能称为Java语言的反射机制。

我们学习反射可以通过类的字节码对象去给类的成员变量对象赋值与获取、使用成员方法、通过构造方法创建对象。

我们可以通过以下方法去获取字节码对象。Class.forName("全类名"); 类名.class; 对象.getClass()。

反射类中的构造方法:

Constructor<T> getConstructor(Class<?>... parameterTypes)返回单个公共构造方法对象。

Constructor<T> getDeclaredConstructor(Class<?>... parameterTypes)返回单个构造方法对象。

Constructor类用于创建对象的方法:

T newInstance(Object...initargs) 根据指定的构造方法创建对象。

setAccessible(boolean flag) 设置为true,表示取消访问检查。

Field getField(String name) 返回单个公共成员变量对象。

Field getDeclaredField(String name) 返回单个成员变量对象。

void set(Object obj, Object value) 赋值。

Object get(Object obj) 获取值。

大家最好不要暴力反射。

Method getMethod(String name, Class<?>... parameterTypes)  返回单个公共成员方法对象。

Method getDeclaredMethod (String name, Class<?>... parameterTypes) 返回单个成员方法对象。

Object invoke(Object obj, Object... args) 运行方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值