注解概念

概念:

       注释: 用文字描述程序的,给程序员看的

       注解:说明程序的 给计算机看 

编写文档: 可以将代码生成jdk api

代码

注解概念_第1张图片

注解概念_第2张图片注解概念_第3张图片

注解概念_第4张图片

JDK的内置注解 

     @override :检测被注解标注的方法是否继承自父接口

     @Deprecated: 该注解标注的内容已过时

     @suppressWarings :压制警告      @suppressWarings("all")

自定义注释

 注解概念_第5张图片

注解概念_第6张图片

注解概念_第7张图片

元注解

      用于描述注解的注解 

        @target 描述注解能作用的位置

                    TYPE :可以作用在类上

                    METHOD:可以作用在方法上

                    FIELD:可以作用在成员变量上

        @Retention 描述注解保留阶段

                    @Retention(RetentionPolicy.RUNTIME) 当前描述的注解 会保留在自节目文件 并被JVM获取, 一般自己创建的注释都用这个

                      @Retention(RetentionPolicy.SOURCE)   

                     @Retention(RetentionPolicy.CLASS)   

        @documented  描述注解是否被抽取到api文档

        @Inherited 描述注解是否被子类继承

解析注解 

       1.获取注解定义的位置的对象 (class method , field)

        2.获取指定的注解

               getAnnotation(class)

         3.调用注解中的抽象方法获取配置的属性值

        

show方法

注解pro 

注解概念_第8张图片

使用Pro注解

注解概念_第9张图片

执行 getAnnotation时候相当于 所以可以对象名.函数名直接调用

注解概念_第10张图片

最后通过反射调用

注解概念_第11张图片

补充 获取方法的注解      一定要记得给注解定义 retention 且值为runtime 否则运行的时候读取不到

注解概念_第12张图片

注解概念_第13张图片

小结

    以后大多数时候,我们会使用注解 而不是自定义注解

     注解会给谁用

            编译器 :@override 编译器判断子类方法与父类方法是否一致

            给解析程序 :比如我们要对类的方法进行统一测试  那么解析程序会解析注解进行分析

     注解不是程序的一部分 注解相当于标签

      

你可能感兴趣的:(注解概念)