注解类型的限制
注解类型不能从另一个注释类型继承。每个注释类型都隐式地继承java.lang.annotation.Annotation接口,其声明如下:
package java.lang.annotation;
public interface Annotation {
boolean equals(Object obj);
int hashCode();
String toString();
Class<? extends Annotation> annotationType();
}
注解类型中的方法声明不能指定任何参数。注解类型中的方法声明不能有throws子句。在注解类型中声明的方法的返回类型必须是以下类型之一:
- 任何原始类型:
byte,short,int,long,float,double,boolean, 和char等等 java.lang.Stringjava.lang.Class- 枚举类型
- 注解类型
- 任何上述类型的数组,例如,
String[],int[]等等
返回类型不能是嵌套数组。 例如,返回类型不能是String [][]或int [][]的二维或多维数组。
可以使用以下方法声明注释,如下所示:
public @interface MyAnnotation {
Class element1(); // Any Class type
Class<Test> element2(); // Only Test class type
Class<? extends Test> element3(); // Test or its subclass type
}
注释类型不能是通用的。
