java的自省机制_深入理解Java反射机制

前言

最近在接触 Android 的组件化原理的时候,发现自己对 Java 反射的机制理解并不是很深,只能利用周末的时间把 Java 反射机制回炉重铸。

什么是Java反射

反射机制是 Java 语言提供的一种基础功能,赋予了 Java 程序在运行时的自省(introspect,官方用语)的能力。通过 Java 的反射机制,程序员可以在 Java 程序在运行态的时候操作任意的类或者对象的属性、方法。利用 Java 的反射机制,可以做到以下:

在程序的运行态可以获取对象所属的类;

在程序的运行态可以构造类的对象实例;

在程序的运行时可以获取,或者修改类的成员属性;

在程序的运行态可以调用某个类,或者对象的方法;

在程序的运行态可以获取类的其他信息,比如描述修饰符、父类信息等;

对文中的"自省"的理解:"自省"应该仅指程序在运行时对自身信息(元数据)的检测,而反射机制不仅仅需要在运行时对程序的自身数据进行检测,还需要根据检测到的数据修改程序的状态或者方法。

用于操作反射的相关的 5 个类:

java.lang.Class:代表类;

java.lang.reflect.Constructor:代表类的构造方法;

java.lang.reflect.Field:代表类的属性;

java.lang.reflect.Method:代表类的方法;

java.lang.reflect.Modifier:代表类、方法、属性的修饰符&#

你可能感兴趣的:(java的自省机制)