JAVA反射机制

一,反射的基本概念:

Java的反射(reflection)机制是指在程序的运行状态中,将类的各个组成部分封装为其他对象,这就是反射机制

二,作用:

反编译:.class-->.java

通过反射机制访问java对象的属性,方法,构造方法等;

三,具体实现

我们可以通过 对象名 或者类名

在运行阶段获取Class对象 (原生所在类)

四,结论

结论:同一个字节码文件(*.class)在一次程序的运行过程中,只会被加载一次,无论通过那一次方式获取的class对象都是同一个

第一种方式多数用于 配置文件 将类名可以定义在配置文件中 读取文件 加载类

第二种 多用于参数的传递

第三种方式 多用于对象获取字节码的方式

class对象功能:

获取功能:

1.获取成员变量们

field[]getfields() 获取所有public 的成员变量

field getfield(String name) 获取指定的public 的成员变量

field[]getdeclaredfields()获取所有的成员变量获取所有的成员变量不考虑访问修饰符

field getdeclaredfield获取指定的的成员变量

2.获取构造方法们

constructor<?>[]getconstructors()

constructor<T>getconstructor(类<?>...parameterTypes)

Constructor<T>getdeclaredconstructor(类<?>...parameterTypes)

Constructor<?>[]getDeclaredConstructors()

3.获取成员方法们

Method[]getMethods()

Method getMethod(String name,类<?>...parmeterTypes)

Method[]getdeclaredMethods()

Method getdeclaredMethod(String name,类<?>...parmeterTypes)

4.获取类名称

String getName();

基本如下:

field:成员变量

操作:

1.设置值

void set(Object obj,object value)

2.获取值

get(Object obj)

3.忽略访问修饰符

setAccessible(true);//暴力反射

Constructor:构造方法

创建对象

1.newInstance(Object...initargs)

如果使用空参数构造方法创建对象,操作可以简化:直接用Class对象的newInstance(Object...initarge)获取对象

Method:方法对象

执行方法:

Object invoke(Object obj,Object...args)

method.setAccessible(true);//暴力反射打开私有的成员方法

获取方法名称:

String getname:获取方法名称

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值