Java註解類型的限制
註解類型的限制
註解類型不能從另一個註釋類型繼承。每個註釋類型都隱式地繼承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.String -
java.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
}
註釋類型不能是通用的。