java反射

反射

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

2获取 Class对象的三种方法

Class.forName(全类名)方法

类名.class属性

对象名.getClass()方法

通过获取的Class对象就可以调用方法获取构造方法,成员变量和成员方法

3获取构造方法

(1)Class类中用于获取构造方法的方法

Constructor<?>[] getConstructors()    返回所有公共构造方法对象的数组
Constructor<?>[] getDeclaredConstructors()    返回所有构造方法对象的数组
Constructor<T> getConstructor(Class<?>... parameterTypes)    返回单个公共构造方法对象
Constructor<T> getDeclaredConstructor(Class<?>... parameterTypes)    返回单个构造方法对象

(2)Constructor类用于创建对象的方法

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

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

3.获取成员变量

(1)Class类中用于获取成员变量的方法

 Field[] getFields()                 返回所有公共成员变量对象的数组

 Field[] getDeclaredFields()         返回所有成员变量对象的数组     

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

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

(2)Field类中用于创建对象的方法

 void set(Object obj, Object value)    赋值   

 Object get(Object obj)             获取值 

4获取成员方法

(1)Class类中用于获取成员方法的方法

Method[] getMethods()                              返回所有公共成员方法对象,包括继承的所用公共方法

 Method[] getDeclaredMethods()               返回所有成员方法对象,不能获取继承的

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

(2)Method类中用于创建对象的方法   

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值