java 的反射机制

1.反射基本概念

类创建对象的时候,都是在编译的时候完成。

反射不一样

它是在运行时,而非编译时

动态获取类型的信息,比如:

接口信息、成员信息、方法信息、构造方法信息....
根据这些动态获取到的信息创建对象、访问/修改成员、调用方法等。

2.反射的使用场景

序列化库Jackson,利用反射和注解实现了通用的序列化/反序列化机制
Spring MVC, Jersey用于处理Web请求,利用反射和注解,能方便的将用户的请求参数和内容转换为Java对象,将Java对象转变为响应内容
Spring, Guice利用这些特性实现了对象管理容器,方便程序员管理对象的生命周期以及其中复杂的依赖关系
应用服务器比如Tomcat利用类加载器实现不同应用之间的隔离、JSP技术也利用类加载器实现修改代码不用重启就能生效的特性
AOP将编程中通用的关注点比如日志记录、安全检查等与业务的主体逻辑相分离,减少冗余代码,提高程序的可维护性,AOP需要依赖上面的这些特性来实现

3. 运用

就是通过class文件对象,去使用该文件中的成员变量,构造方法,成员方法。
Class类:
  • 成员变量 Field

  • 构造方法 Constructor

  • 成员方法 Method

3.2 获取 Class 对象

  • A:Object类的getClass()方法

  • B:数据类型的静态属性class

  • C:Class类中的静态方法 forName(String className)

你可能感兴趣的:(java 的反射机制)