浅谈Java反射(Reflect)技术--常用方法

Java反射(Reflect)技术

概念:动态获取在当前Java虚拟机中的类、接口或者对象等等信息(运行过程中读取内容)


1.作用(面试问题):

1.1 解除两个类之间的耦合性,即在未得到依赖类的情况下,自身应用可以通过编译

1.2 动态依赖注入(即需要某一类对象时动态生成类实例,并设置到被依赖的类中),减少编译时的内存开销  (大多框架都用)

2.获取Class对象的三种方式:(重要)

2.1、使用Class类的静态方法: Class.forName(String name) jdbc注册驱动使用过;
2.2、类的语法:T.class,代表了与其匹配的Class对象  json:解析:fastjson,gson,org开头的。。。
2.3、使用类的实例化的getClass方法: obj.getClass()




3.获取类的构造器java.lang.reflect.Constructor(了解)

3.1  public Constructor<?>[] getConstructors() 返回类中所有的public构造器集合,默认构造器的下标为0
3.2  public Constructor<T> getConstructor(Class<?>... parameterTypes) 返回指定public构造器,参数为构造器参数类型集合
3.3  public Constructor<?>[] getDeclaredConstructors() 返回类中所有的构造器,包括私有
3.4  public Constructor<T> getDeclaredConstructor(Class<?>... parameterTypes) 返回任意指定的构造器
3.5  Constructor重要的方法newInstance(Object ...initargs) 实例化类


4.获取类的成员变量java.lang.reflect.Field(重要)  

4.1 public Field[] getFields() 获取所有的public成员变量
4.2 public Field getField(String?name) 获取任意public成员变量
4.3 public Field[] getDeclaredFields()  获取所有的成员变量

4.4 public Field getDeclaredField(String?name) ?获取任意指定名字的成员变量

4.5 public void setAccessible(boolean flag) 设置私有属性是否可访问

4.6 Field 重要方法set(Object obj, Object  value) 字段设置为指定的新值。


5.获取类的方法java.lang.reflect.Method(重要)

5.1 public Method[] getMethods() 获取所有的共有方法的集合
5.2 public Method?getMethod(String?name,Class<?>... parameterTypes) 获取指定公有方法
5.3 public Method[] getDeclaredMethods() ?获取所有的方法
5.4 public Method getDeclaredMethod(String?name,Class<?>... parameterTypes) 获取任意指定方法
5.5 Method重要方法invoke(Object obj ,Object…parmasType) 执行对象的方法,第一个参数为类实例对象,第二个参数:对象方法的参数

6.Class类的实例化方法 newInstance()

7.获取类的全名:getName() ;包名+类名

8.获取类的简称:getSimpleName()   类名

9.获取类的包名:getPackage()  包名
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值