阶段1 语言基础+高级_1-3-Java语言高级_09-基础加强_第3节 注解_15_注解_自定义注解_属性定义
public abstract可以省略
注解里面不允许返回void类型
new一个class选择枚举类型
Person这个就是一个枚举类
返回一个枚举类型
再定义一个注解类
注解里面可以返回另外一个注解的类
返回一个字符串的数组
定义一个Worker的class类型
返回普通的类为注解的类型 不可以!
使用注解
其他都注释掉。只保留int 类型的show1方法
使用我们定义的这个注解,提示有一些属性没有赋值
缺少show1的必须的一个值
show1方法就是注解的属性名。
所以我们在给注解的方法名 起名字的时候尽量起的名字像是属性。例如下面修改为age
再定义一个String类型的name
多个值用逗号隔开
default属性默认值
不想给name这个值赋值,可以加一个默认值。在定义的时候默认值为张三
那么下面name的值就不是必须要赋值了
特殊的属性名value
把方法名改成value,value是一个特殊的名
那么在使用注解的时候就是
如果你只有一个属性需要赋值,并且这个属性叫做value的话可以省略
例如这里@SupperessWarnings里面没写属性名,那么属性名肯定是叫做value
源码里面 这个属性名确实是value
枚举类型的赋值
如果是以偶多个属性需要赋值,这里的value是不能省略的
枚举类型的赋值。相当于我们的静态常量
注解类型的赋值
数组类型赋值
用大括号包裹起来
如果数组内只有一个值的话,大括号是可以省略
总结