对于反射,传智播客的说法:
- JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。
- 要想解剖一个类,必须先要获取到该类的字节码文件对象。而解剖使用的就是Class类中的方法.所以先要获取到每一个字节码文件对应的Class类型的对象.
解释:
- 反射就是通过class文件对象,去使用该文件中的成员变量,构造方法,成员方法。
要想这样使用,首先你必须得到class文件对象,其实也就是得到Class类的对象。
Class类: 成员变量 Field 构造方法 Constructor 成员方法 Method 得到Class类的对象后通过调用该类的方法获得成员变量对象,构造方法对象,成员方法对象操作类的方式就是反射。
在这里必须解释一点:
对于Class类分解class文件对象的时候,Class类的处理就是把成员变量、构造方法、成员方法各自抽象成了对象,并且都有各自的类,比如Constructor类(构造方法类)等。
总结:反射就是通过class文件对象,去使用该文件中的成员变量,构造方法,成员方法。
对于所有的字节码文件也就是.class文件都是Class类的对象。