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
}
註釋類型不能是通用的。