该篇主要说明注解属性。
说明
注解属性只有成员变量,不是局部变量。并且注解没有方法。注解的属性方法名字即为该成员变量的名字,返回值即为成员变量的类型。
@Target({TYPE, FIELD, METHOD, PARAMETER, CONSTRUCTOR, LOCAL_VARIABLE})
@Retention(RetentionPolicy.SOURCE)
public @interface SuppressWarnings {
String[] value();
}
如上代码,变量名字即为 value
,变量类型即为 String[]
。
如果使用 @SuppressWarnings
注解,即如下代码:
@SuppressWarnings(value = {"ss","aa"})
public class AnnotationMain {
}
注解属性只能为8中基本类型、 类、接口、注解及它们的数组。不能使用8中基本类型的包装类。如下代码:
public @interface A {
byte by();
int id() default 1;
short sh();
long lo();
double dou();
float flo();
char ch();
boolean b() default true;
}
属性可以指定默认值,使用 default
。
还有一种情况。如果一个注解内仅仅只有一个名字为 value 的属性时,应用这个注解时可以直接接属性值填写到括号内。
public @interface A {
int value();
}
@A(5)
public class AnnotationMain {
}
如果属性有默认值,则使用注解时,可以不用指定数值,未指定默认的值,则必须进行填写值,否则会报错。
如果一个注解没有任何属性,则在使用该属性的时候,不用加 ()
,如 @A
。前提是该注解没有任何属性。