注解本质上是代码中的标签。有了标签可以在编译、类加载以及运行时执行指定的处理。
public @interface MyAnnotation {
public String value() default "h"; //声明一个String类型的成员变量, 名字是value
public String value2() default "w";
}
@MyAnnotation(value = "hello", value2 = "world")
public class Person {
private String name;
private int age;
}注解能有的成员变量类型很有限,基本不支持自定义类型。主要就是8种基本类型,以及 注解 Class enum 等等
元注解
可以加在注解上的注解
元注解主要有@Retention @Documented @Target @Inherited @Repeatable
Retention
Documented
Target
Inherited
Repeatable
//after java8
@Repeatable(value = ManTypes.class)
public @interface ManType {
String value();
}
public @interface ManTypes {
ManType[] value();
}
//before java8
@ManTypes({@ManType(value = "教师"), @ManType(value = "工人")})
//after java8
@ManType(value = "教师")
@ManType(value = "工人")
public class Man{}常见的预制注解
以及

京公网安备 11010502036488号