欢迎各位点赞👍 评论**✍收藏⭐**
1. Java 反射机制定义
Java 反射机制是指在运行时动态地获取类的信息、创建对象以及调用对象属性和方法的机制。它赋予 Java 程序在运行时自我审视的能力,突破了编译期对类结构的依赖,实现了高度的动态性和灵活性
2. 反射的三大核心能力
看结构
在运行时获取类的所有信息,包括类名、属性(即使是 private 修饰的)、方法 / 函数等内部结构。
造东西
在运行时动态创建类的实例对象,无需在编译期确定具体类类型。
搞事情
在运行时调用对象的方法(包括私有方法)、修改对象的属性(包括私有属性)
3. 反射在 Spring 中的应用
Spring 的依赖注入是反射的典型应用,其过程分为三步:
- 加载类:通过获取 Class 对象(对应 "看结构");
- 创建实例:通过构造函数反射创建对象(对应 "造东西");
- 注入依赖:通过反射给字段赋值或调用 setter 方法(对应 "搞事情")。
Spring 通过反射实现了对象创建和依赖注入的动态化,无需硬编码
4. 反射主要有哪些应用场景?
反射是许多 Java 框架的核心,典型场景包括:
- 框架开发(如 Spring 依赖注入、AOP)
- 动态加载(如 JDBC 驱动加载)
- 调试工具(运行时调试、热部署工具通过反射读写对象属性)
5. 反射有什么缺点?
反射的主要缺点有三:
- 性能问题(动态解析导致调用速度慢)
- 安全问题(破坏封装性,可访问私有成员)
- 可维护性差(字符串调用无法编译期类型检查,易出错)
