Java基础-注解

288 阅读2分钟

一.概念:说明程序的,给计算机看的

概念描述:   
          1.jdk1.5之后的新特性
          2.用来说明程序的
          3.使用注解:@注解名称
         
作用分类:     
         1.编写文档:通过代码里表识的注解生成文档(生成doc文档)
         2.代码分析:通过代码里表识的注解进行代码分析(使用反射)
         3.编译检查:通过代码里标识的注解让编译器能够实现基本的编译检查【override】
             
JDK中预定义的一些注解
         1.@Override:检测被该注解标注的方法是否继承自(父类)接口的
         2.@Deprecated:该注解标识的内容表示已过时
         3.@SuppressWarnings:压制警告的
           一般传递参数all @SuppressWarnings("all")

二.自定义注解

   格式: 元注解
         public @interface 注解名称{}
        
   本质: 注解本质上就是一个接口,该接口默认继承Annotation接口(自定义一注解,编译javac,然后反编译javap)
         public interface 注解名称 extends java.lang.annotation.Annotation{}    
    
   属性:接口中的抽象方法
        要求:
         1.属性的返回值类型有以下取值
           基本数据类型
           String
           枚举
           注解
           以上类型的数组
         2.定义了属性,在使用的时候要给属性赋值
            1.如果定义属性的时候使用default关键字给属性默认初始化值,则使用注解的时候可以不需要给属性赋值
            2.如果只有一个属性要赋值,其名称是value,则value可以省掉,直接定义值即可
            3.数组赋值时,使用{}包裹,如果数组中只有一个值,则可以省掉{}
    
   元注解:用于描述注解的注解
       @target:表示描述注解能够作用的位置
       @Retention:表示描述注解被保留的一个阶段(源码,class,runtime)
       @Documented:描述注解是否抽取到api文档中
       @Inherited:描述注解是否被子类继承
    
      
   在程序中使用(解析)注解:获取注解中定义的属性值
      1.获取注解定义的位置的对象(Class,Method,Field)
      2.获取指定的注解的对象:getAnnotation(注解.class)
      3.调用注解中的抽象方法获取属性值

三.案列(写一个bug检查的注解)

 1.先定义一个注解类

 2.在定义一个注解的bug测试类

3.测试注解功能的执行类

4.测试结果