1、除了在继承关系上的限制(不能添加泛型声明也不能添加extends继承另外的接口),声明时用@interface而不是interface以外,注解类型和普通接口没有区别
2、注解类型中可以包含多个元素,通过方法声明形式来定义,这些方法的声明不能有任何参数或类型参数,也没有方法体;方法返回值类型只能是基本类型、String、Class、Enum、注解类型和数组类型,数组不支持多维数组。注解类型也可以没有任何元素。若注解类型只有一个元素,一般命名为value(作为使用时候的默认传值对象),通过方法后生命default来实现默认值:
public @interface Fuck {
String me() default "author";
int you() default 2;
Class<?> him() default Integer.class;
String[] all() default {"you", "me"};
}
value的时候:
使用:
@ComeOn("Shit")
@Fuck(me = "Wang8Dan", you = 250, all = {"SB", "XB", "DB"})
public void test() {
System.out.println("OK");
}