Java 对注释类型的限制

Java面向对象设计 - 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
}

注释类型不能是泛型的。