博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java反射学习笔记
阅读量:6706 次
发布时间:2019-06-25

本文共 773 字,大约阅读时间需要 2 分钟。

java反射就是用来在运行期对一个封装好或者他人编写的类做相关分析和操作的方法。

0X1 Class

在java运行时,系统所有的对象维护一个运行时的类型标标识,这信息保存着每个对象所属的类足迹。保存这些信息的类叫Class.

假如存在类:Person,可以通过以下方式获取到对应的Class.

m1:

Person per = new Person();

Class demo1 = per.getClass();

m2:

Class demo2 = Class.forName("Person");

m3:

Class demo3 = Person.class;

注:

以上的forName会排出已检查异常,需要做异常捕获。

demo.newInstance(),调用默认的构造器来创建一个实例。

Class类中的getName(),返回一个类的名字。

Class类中的getFields,getMethods,getConstructors返回类的public的域、方法和构造器的数组,其中包括超类的共有成员。

Class类中的getDeclareFields,getDeclareMethods和getDeclareConstructors分别返回类中的全部域,方法,构造器,不包含超类成员。

 

在操作类的私有成员是需要先将调用Field,Method,Constructor对应的setAccessible(true),将访问熟悉设置为true。

对于Field,可以调用get方法获取对应的值。

对于Method,可以通过invoke方法,调用函数,其中第一个参数为 对应的类构造器的一个实例。

 

其他内容待续......

 

 

 

 

转载于:https://www.cnblogs.com/mickeyontheway/p/3550315.html

你可能感兴趣的文章
应用图片加载服务与第三方实现库的解耦
查看>>
高并发的核心技术-幂等的实现方案
查看>>
微波炉炖蛋
查看>>
C#调用C/C++ DLL 参数传递和回调函数的总结
查看>>
非spring组件servlet、filter、interceptor中注入spring bean
查看>>
SQL Server中SELECT会真的阻塞SELECT吗?
查看>>
class path and classloader
查看>>
文字检测与识别 资源
查看>>
外包筛选心得
查看>>
Warning: skipping non-radio button in group
查看>>
dotnet检测类型是否为泛型
查看>>
Android 悬浮窗权限校验
查看>>
使用CefSharp在.Net程序中嵌入Chrome浏览器(九)——性能问题
查看>>
mysql 创建数据库 并设置utf8格式
查看>>
IDA 逆向工程 反汇编使用
查看>>
CentOS7单独安装Apache Bench压力测试工具
查看>>
python植入后门backdoor程序的方法?
查看>>
WPF 使用 Direct2D1 画图 绘制基本图形
查看>>
导入其他python文件或者python文件的函数
查看>>
80端口被NT kernel & System 占用pid 4
查看>>