🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
~~~ 注解: 1.概念:说明程序的,给计算机看的 2.注释:用文字描述程序的.给程序员看的 3.定义:注解(Annotation),也叫元数据.一种代码级别的说明.它是JDK1.5及以后版本引入的一个特性,与类,接口 接口,枚举是在同一个层次.它可以声明在包,类,字段,方法,局部变量,方法参数等的前面,用来对这些元素 进行说明,注释. 概念描述: JDK1.5之后的新特性 说明程序的 使用注解:@注解名称 4.作用分类 1)编写文档:通过代码里标识的元数据生成文档[生成文档doc文档] 2)代码分析:通过代码里标识的元数据对代码进行分析[使用反射] 3)编译检查:通过代码里标识的元数据让编译器能够实现基本的编译检查[Override] 5.JDK中预定义的一些注解 1)@Override 检测被该注解标注的方法是否继承自父类(接口)的 2)@Deprecated 将该注解标注的内容表示已过时 3)@SuppressWarnings 压制警告,去除警告 一般传递参数all @SuppressWarnings("all") 6.自定义注解 格式: 1)元注解 2)public @interface 注解名称{ 属性列表; } 本质:注解本质上就是一个接口,该接口默认继承Annotation接口 public interface MyAnno extends java.lang.annotation.Annotation{} 属性:接口中可以定义的成员方法 要求: 1)属性的返回值类型有下列取值 * 基本数据类型 * String * 枚举 * 注解 * 以上类型的数组 2)定义了属性,在使用时需要给属性赋值 1.如果定义属性时,使用default关键字给属性默认初始化值,则使用注解时,可以不进行属性的赋值 2.如果吸一个属性需要赋值,并且属性的名称是value,则value可以省略,直接定义值即可 3.数组赋值时,值使用{}包裹.如果数组中只有一个值,则{}可以省略 元注解:用于描述注解的注解 @Target:描述注解能够作用的位置 *ElementType取值: * TYPE: 可以作用于类上 * METHOD: 可以作用于方法上 * FIELD: 可以作用于成员变量上 * * @Retention:描述注解被保留的阶段 * Retention(RetentionPolicy.RUNTIME) 当前被描述的注解,会保留到class字节码文件中,并被jvm读取到 @Documented:描述注解是否被抽取到api文档中 @Inherited:描述注解是否被子类继承 在程序中使用(解析)注解:获取注解中定义的属性值 1.获取注解定义的位置的对象(Class,Method,Field) 2.获取指定的注解 * getAnnotation(Class) /** * public class ProImpl implements Pro{ * @Override * public String className() { * return "cn.itcast.day07.demo1.annotation.Demo1"; * } * * @Override * public String methodName() { * return "show"; * } * } */ 3.调用注解中的抽象方法获取配置的属性值 小结: 1.以后大多数时候,我们会使用注解,而不是自定义注解 2.注解给谁用 1)编译器 2)给解析程序用 3.注解不是程序的一部分,可以理解为注解就是一个标签 ~~~