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是不能省略的
枚举类型的赋值。相当于我们的静态常量
注解类型的赋值
数组类型赋值
用大括号包裹起来
如果数组内只有一个值的话,大括号是可以省略
总结