反射:加载类,并允许以编程的方式剖解类中的各种成分(成员变量、方法、构造器等)。
反射主要用来做框架,实际开发很少用到。如IDEA的自动提示, 一个对象,输入.会自动提示出成员变量、成员方法,就是用到了反射。
反射的步骤:
1.加载类,获取类的字节码,Class对象,将类的字节码文件加载到内存中。(Java中一切皆对象,每个类在JVM中都会有一个Class类型的对象,包含类的结构信息、方法、字段、构造器等)
2.获取类的构造器,Constructor对象。
3.获取类的成员变量,Field对象。
4.获取类的成员方法,Method对象。
获取Class对象的三种方式:
1.Class c1=类名.class;
2.调用Class提供的方法,public static Class forName(String package);
3.Object提供的方法:public Class getClass(); Class c3=对象.getClass();
获取到Class对象后可进行其他操作,如获取类名、构造器等等。