通过反射操作注解
package Com.Reflection;
import java.lang.annotation.*;
@MyAnnotation(name = "hfx",age=18)
public class Reflection {
public static void main(String[] args) throws ClassNotFoundException {
Reflection reflection = new Reflection();
Class aClass = reflection.getClass();
MyAnnotation annotation = (MyAnnotation)aClass.getAnnotation(MyAnnotation.class);//获得指定类型的注解
System.out.println(annotation.age());
System.out.println(annotation.name());
}
}
@Target({ElementType.TYPE,ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
@interface MyAnnotation{
int age();
String name();
}
类加载的过程
1:加载:将类的字节码文件加载进入内存并生成一个Class对象
2:链接
验证:检测类的信息符不符合规范
准备:为类中的静态变量分配内存并进行初始化
解析:将常量池中的符号引用替换为直接引用
3:初始化
将类中的赋值过程和静态代码块合并并执行