当前位置:网站首页>反射机制简述
反射机制简述
2022-07-26 10:35:00 【Suzerk】
反射是Java被视为动态语言的关键,反射机制允许程序在执行期借助于反射API取得任何类的内部信息,并能够直接操作任意对象的内部属性及方法。
获取Class对象的常用方法:
Class c=Class.forName("java.lang.String");
即使是private修饰的关键词也可以读取到。
功能:
1)在运行时判断任意一个类所具有的的成员变量和方法;
2)在运行时获得泛型信息;
3)在运行时处理注解;
4)生成动态代理;
5)在运行时判断任意一个对象所属的类;
6)在运行时构造任意一个类的对象;
instanceof用来判断是否为某个类的实例:
System.out.println(Class.forName(properties.getProperty("FactoryName")).newInstance() instanceof IFactory );
- 使用
newInstance()方法来创建Class对象对应类的实例。
IFactory operFactory = (IFactory) Class.forName("AddFactory").newInstance();
- 优缺点:
优点:
1)提高了程序的灵活性和扩展性,降低模块耦合度;
2)在运行时获得类的各种内容,调用对象的方法。
3)使用反射可以避免将代码写死在框架中。
缺点:
1)反射会消耗一定的系统资源,反射操作的效率要比正常操作的效率低很多;
2)反射调用方法时可以忽略权限检查,因此可能会破坏封装性而导致安全问题。
边栏推荐
- The difference between equals and = =
- [Halcon vision] array
- oracle 启动不了 tnslistener服务启动不了
- 粽子大战 —— 猜猜谁能赢
- Problems encountered in QRcode QR code (C language)
- MD5 encryption
- hx711 数据波动大的问题
- 【机器学习小记】【风格迁移】deeplearning.ai course4 4th week programming(tensorflow2)
- [C language] named type and anonymous type
- 异常的概念与处理
猜你喜欢

Navicat15连接本地虚拟机的Mysql(Centos7)

第8期:云原生—— 大学生职场小白该如何学

vscode上使用anaconda(已经配置好环境)

记给esp8266烧录刷固件

Agenda express | list of sub forum agenda on July 27

MLX90640 红外热成像仪测温传感器模块开发笔记(六)红外图像伪彩色编码

Mlx90640 infrared thermal imager temperature sensor module development notes (VI) pseudo color coding of infrared images

【dectectron2】跟着官方demo一起做

.NET5WTM(ASP.NET Core) PGSql开箱操作
![[Halcon vision] affine transformation](/img/f1/32284c71e78e6eea390fdb6058ba0f.png)
[Halcon vision] affine transformation
随机推荐
About the declaration and definition of template functions [easy to understand]
A semicolon is missing
MLX90640 红外热成像仪测温传感器模块开发笔记(六)红外图像伪彩色编码
GIS方法类期刊和论文的综述(Introduction)怎么写?
js下载文件,FileSaver.js导出txt、excel文件
algorithm
.NET 开源框架在工业生产中的应用
C language calculation date interval days
datav漂亮数据屏制作体验
cavans实现静态滚动弹幕
C语言计算日期间隔天数
String null to empty string (what does empty string mean)
单元测试,到底什么是单元测试,为什么单测这么难写
Dry goods likeshop takeout order system is open source, 100% open source, no encryption
Modelsim installation tutorial (application not installed)
The difference between equals and = =
.NET操作Redis List列表
头歌 Phoenix 入门(第1关:Phoenix 安装、第2关:Phoenix 基础语法)
Redis implementation of distributed lock solution
Navicat15 MySQL (centos7) connected to local virtual machine