自定义注解:
格式:
元注释
public @interface 注解名称{}
本质:注解本质上就是一个接口,该接口默认继承Annotation接口
public @interface MyAnno extends java.lang.annotation.Annotation{}
属性:接口中可以定义的成员方法
在程序使用(解析)注解
程序代码:
@SuppressWarnings("all")
public class AnnoDemo2 {
@Override
public String toString(){
return super.toString();
}
@Deprecated
public void show1(){
}
@MyAnno
public void show2(){
}
public void demo(){
show1();
Date date = new Date();
}
}
public @interface MyAnno { // public abstract String show(); }
自定义注解_属性定义
属性:接口中的抽象方法
要求:
属性的返回值类型有下列取值
基本数据类型
String
枚举
注解
以上类型的数组
定义了属性,在使用时需要给属性赋值
如果定义属性时,使用default关键字给属性默认初始化值,则使用注解时,可以不进行属性的赋值。
如果只有一个属性需要赋值,并且属性的名称是value,则value可以省略,直接定义值即可。
数组赋值时,值使用0包表。如果数组中只有一个值,则0省略
public @interface MyAnno { int value(); Person per(); MyAnno2 anno2(); String[] str(); // String name() default "张三"; }
public @interface MyAnno2 { }
public enum Person { P1,P2; }
@MyAnno(value = 12,per = Person.P1,anno2 = @MyAnno2,str = {"aaa","bbb"})
public class Worker {
}
浙公网安备 33010602011771号