注解语法
注解
每个注解的格式@BugReport(assignedTo="Harry",severity=10)
元素顺序无关紧要,元素值为指定使用声明的默认值。
两个快捷方式简化注解:注解没有任何元素或元素都使用默认值,就不需要圆括号了。
@BugReport,这样的注解又称为标记注解。
单值注解:只有一个特殊的元素value,没有其他注解,可以忽略元素和等号。
例如:@ActionListenerFor("yellowButton")
注解元素不能设置为null。
元素值是数组,用括号括起来@BugReport(reportedBy={"Harry","Carl"});
注解各类声明
声明注解可以出现在:
- 包
- 类,包括枚举
- 接口,包括注解接口
- 方法
- 构造器
- 实例域,包含枚举常量
- 局部变量
- 参数变量
- 类型参数
注解类型用法
public User getUser(@NonNull String userId),断言userId参数不为空。
可以出现在,与泛型参数一起,数组中任何位置,与超类和实现接口一起使用,与构造器一起等等。。。
注解this
假设想要将参数注解为方法中不会被修改
public class Point {
public boolean equals(@ReadOnly Point this,@ReadOnly Object other){...}
}