Java反射
什么是Java反射机制
反射即是在运行时获取类的所有信息的一种功能。
Java反射机制是在运行状态中对于任意一个类,
都能知道这个类的所以属性和方法;
对于任何一个对象,都能够调用它的任何一个方法和属性;
这样动态获取新的以及动态调用对象方法的功能就叫做反射。
反射类
1.java.lang.Class;
2.java.lang.reflect.Constructor;
3.java.lang.reflect.Field;
4.java.lang.reflect.Method;
5.java.lang.reflect.Modifier;
获取Class对象的三种方法。
2. 通过 Class 类可以获取成员变量、成员方法、接口、超类、构造方法等
通过Class对象获取类的所有属性
通过Class对象获取类的所有方法
可以获取指定属性和构造方法
优点:
(1)能够运行时动态获取类的实例,大大提高系统的灵活性和扩展性。
(2)与Java动态编译相结合,可以实现无比强大的功能
缺点:
(1)使用反射的性能较低
(2)使用反射相对来说不安全
(3)破坏了类的封装性,可以通过反射获取这个类的私有方法和属性
所以灵活使用反射能让我们代码更加灵活,这里比如JDBC原生代码注册驱动,hibernate 的实体类,Spring 的 AOP等等都有反射的实现。
但是凡事都有两面性,反射也会消耗系统的性能,增加复杂性等,合理使用才是真!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· winform 绘制太阳,地球,月球 运作规律
· 上周热点回顾(3.3-3.9)