1. 反射Reflection
反射就是加载字节码文件,并允许用以编程的方式解剖类中的各种成分(成员变量、成员方法、构造器等)。
如何获取类的信息?
第一步:加载类,获取类的字节码:Class对象
第二步:获取类的构造器:Constructor对象
第三步:获取类的成员变量:Filed对象
第四步:获取类的成员方法:Method对象
如何获取Class对象?
- 类名.class
- Class.forName("com.gtc.pojo.Student")
- 对象.getClass()
Class c1 = Student.class; // 方式一:c1为Student的Class对象Class.forName("Student"); // 方式二Class c2 = xiaohong.getClass(); // 方式三
反射的作用?
适合做Java的框架,基本上,主流的框架都会基于反射设计出一些通用的功能。
1.1 获取类的构造器Constructor
1.2 获取类的成员变量Filed
1.3 获取类的成员方法Method
2. 注解Annotation
注解本质是一个接口,Java中所有注解都是继承了Annotation接口的
@注解:实际就是一个实现类对象,实现了该注解以及Annotation接口。