注解(Annotation),也叫元数据(Metadata),是Java5的新特性,JDK5引入了Metadata很容易的就能够调用Annotations。注解与类、接口、枚举在同一个层次,并可以应用于包、类型、构造方法、方法、成员变量、参数、本地变量的声明中,用来对这些元素进行说明注释。
注意:注释是给程序员看的而注解是个计算机看的
package zj;
/**
*注解里的抽象方法可以看作接口的一个属性
- 属性的返回值只能为八大基本数据类型,String类型,枚举类类型,注解类型,数组类型
- 如果定义了属性就必须给属性赋值,格式为属性=值
- {特殊返回值类型赋值方法
- 枚举类 属性=枚举类名.枚举类变量(类似静态变量的调用)
- 注解类 属性=注解名(即属性=@注解名)
- 数组类 属性={1,2,3}若数组元素只有一个则可省略大括号
- }
- 如果不想赋值可在注解里对属性加上default关键字格式为 String str()default “1”,
- 若属性只有一个,并且属性名为value,则在对注解使用时可不写属性名直接写值,即@daw(value=1)->@daw(1)
*/
一般注解格式为
元注解+
public @interface daw {
int value();//八大基本数据类型
//String da1();//返回String类型
sa p();//返回枚举类类型
de de();//返回注解类型
String [] str();
//返回数组类型
}
常用注解
1.@Override//表示是否覆盖重写父类方法
2.@Deprecated//该注解标注的内容表示已过时
3.@SuppressWarnings//压制警告
对于1,2应该好理解
而对于3,举例:@SuppressWarnings(“all”)//压制所有对方法a1的警告,警告在右边框,一条杠(以idea为例)
常用元注解: 1. @Target表示注解能够作用的位置()Elemtype.TYPE,FIELD,METHOD分别表示作用在类,成员变量,方法(这些为常用属性)
2. @Retention表示注解能够保留的阶段@Retention(RetentionPolicy.RUNTIME)大部分自定义注解都是选择能够保留到class字节码文件中(即选择RetentionPolicy.RUNTIME),能被jvm读取
3.@Documented 表示能否被抽取到API文档中
4. @Inherited表示注解是否被子类继承(即一个类其标有的注解中若有 @Inherited这个注解则这个类的子类会继承这个类的注解)