1.注解的概念
注释:文字描述我们的程序,给程序员看的
注解:元数据 ,一种代码级别的说明 他是jdk1.5之后引入的。
说明程序的,给计算机看得
作用分类:
1.编译检查
2.编写文档
3.代码分析
2.jdk 预定义注解
@Override:检查被该注释标记的方法是否是继承自父类 【接口】
@Deprecated: 该注解表示注释的内容过时
@SuppressWarning: 压制警告
3.自定义注解
注解的本质是一个接口,(通过反编译得知)继承Annotation接口
格式:
//元注解
public @interface 注解名称{
//属性列表
}
自定义注解反编译之后的内容:
public interface MyDemo extends java.lang.annotation.Annotation{
}
4.属性:在接口中定义的抽象方法
返回结果必须是如下类型
1.基本数据类型
2.String类型
3.枚举类型
4.注解类型
5.以上对应的数组类型
属性赋值定义:
1.如果定义的属性时,使用default 关键字给属性默认初始值,可以在使用的时候不赋值
2.只有一个属性需要赋值,名字叫value,可以在使用注解的时候 value可以省略。
3.数组赋值的时候 ,使用一对{}包裹。如果数组中只有一个值,{}可以省略
5.元注解:
JDK中给我们提供的四个元注解
1.@Targer : 描述当前注解作用的位置
ElementType.TYPE :作用在类上
ElementType.METHOD :作用在方法上
ElementType.FIELD :作用在成员变量上
2.@Retention : 描述注解被保留的阶段
SOURCE <CLASS<RUNTIME
SOURCE : 表示当前注解只在代码阶段有效
CLASS : 表示注解会被保留到字节码阶段
RUNTIME: 表示注解会被保留到运行阶段 JVM
自定义注解: RetentionPolicy.RUNTIME
3.@Documented : 描述注解是否被抽取到JavaDoc api中
4.@inherited : 描述注解是否被子类继承