搜索 K
Appearance
博客正在加载中...
Appearance
属性:属性就是接口中的抽象方法
接下来我们说说定义属性的要求。
要定义注解的,里面的属性要有返回值类型,所以不能定义 void 的属性。可以有下列返回值
例如,我们可以这样定义注解:
public @interface MyAnno2 {
int value();
String show2();
}如果只定义了注解,但是不赋值,会报错。例如我们定义一个类,使用了注解:
@MyAnno2
public class AnnoDemo3 {
}在还没有编译的时候,IDE 就提示有错误了:

尝试编译,也是有报错的
javac AnnoDemo3.java
AnnoDemo3.java:1: 错误: 对于元素value,show2, 注释 @MyAnno2 缺少默认值
@MyAnno2
^
1 个错误所以我们得赋值,属性要求什么返回值,我们就赋值什么。由于 赋值时就像给属性赋值一样(属性和属性值),所以称之为属性。
@MyAnno2(value=1, show2="str")
public class AnnoDemo3 {
}所以我们起名字的时候,尽量让属性名看上去更像属性,例如 age,name 等。
其他注意事项:
@MyAnno(18), @SuppressWarnings("all"). 这个 value 属性非常特殊。{} 包裹,例如 strs={"abc", "bbb"}。如果数组中只有一个值,则 {} 可以省略public @interface MyAnno3 {
String name();
int age() default 18;
String[] strs();
}