当前位置:网站首页>反射机制简述
反射机制简述
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)反射调用方法时可以忽略权限检查,因此可能会破坏封装性而导致安全问题。
边栏推荐
- Problems encountered in QRcode QR code (C language)
- Dry goods likeshop takeout order system is open source, 100% open source, no encryption
- 异常的概念与处理
- 13 以对象管理资源
- Redis special data type usage scenarios
- Oracle创建索引
- 关于硕博士开题报告编写的思考
- 第7期:内卷和躺平,你怎么选
- Introduction to data analysis | kaggle Titanic mission (I) - > data loading and preliminary observation
- Function template parameters (where are the function parameters)
猜你喜欢

Redis docker instance and data structure
![[leetcode每日一题2021/8/31]1109. 航班预订统计【中等】差分数组](/img/9d/5ce5d4144a9edc3891147290e360d8.png)
[leetcode每日一题2021/8/31]1109. 航班预订统计【中等】差分数组

Redis Docker实例与数据结构
软件打不开了
![[leetcode每日一题2021/4/29]403. 青蛙过河](/img/fb/612777c77df5a611506e72f4f4c3c8.png)
[leetcode每日一题2021/4/29]403. 青蛙过河
![[Halcon vision] software programming ideas](/img/9b/a27338689ee4598dac88f6e5d92053.png)
[Halcon vision] software programming ideas

js 获得当前时间,时间与时间戳的转换

.net5wtm (asp.net core) PgSQL unpacking operation

Okaleido ecological core equity Oka, all in fusion mining mode

centos8(liunx)部署WTM(ASP.NET 5)使用pgsql
随机推荐
Dry goods likeshop takeout order system is open source, 100% open source, no encryption
Draco developed by Google and Pixar supports USD format to accelerate 3D object transmission & lt; Forward & gt;
uniapp使用简单方法signalR(仅用于web调试,无法打包app)
原生JS-获取transform值 x y z及rotate旋转角度
Function templates and non template functions with the same name cannot be overloaded (definition of overloads)
[Halcon vision] morphological expansion
C language calculation date interval days
第5期:大学生入职必备技能之二
常见的类(了解)
多目标优化系列1---NSGA2的非支配排序函数的讲解
第6期:大学生应该选择哪种主流编程语言
Interview questions and answers of the first company (I)
Structure of [Halcon vision] operator
议程速递 | 7月27日分论坛议程一览
.net operation redis list list
事务的传播性propagation
.NET操作Redis Set无序集合
Some web APIs you don't know
L2-005 set similarity (intersection of vector and set)
一些你不知道的 web API