美文网首页
6 注解00

6 注解00

作者: 一枝妖孽 | 来源:发表于2018-06-10 21:20 被阅读0次

    一 注解概念

    1 什么是注解

    Annotation(注解)即是Java供给了一种元程序中的元素相关任何信息和着任何元数据(metadata)的途径和办法
    基本的规则:annotation不能影响程序代码的执行,无论增加、删除annotation,代码都始终如一的执行

    2 什么是metadata

    元数据:描述数据的数据。
    1)元数据以标签的形式存在于Java代码中
    2)元数据描述的信息是类型安全的
    3)元数据需要编译器之外的工具额外的处理用来生成其他的程序部件
    4)元数据可以只存在于Java源代码级别,也可以存在于编译之后的Class文件内部

    二 注解分类

    1 系统内置标准注解

    1)Override:复写父类的方法【标记型的注解】
    2)Deprecated:过时的
    3)SuppressWarnnings:抑制编译器对部分不合理代码的警告
    4)@SafeVarargs:@SafeVarargs是JDK 7 专门为抑制“堆污染”警告提供的
    5)@FunctionalInterface:就是用来指定某个接口必须是函数式接口,否则就会编译出错【修饰函数式接口】

    3 元注解【修饰注解的注解】

    1)@Target:定义注解的作用目标
    @Target(ElementType.TYPE) //接口、类、枚举、注解
    @Target(ElementType.FIELD) //字段、枚举的常量
    @Target(ElementType.METHOD) //方法
    @Target(ElementType.PARAMETER) //方法参数
    @Target(ElementType.CONSTRUCTOR) //构造函数
    @Target(ElementType.LOCAL_VARIABLE) //局部变量
    @Target(ElementType.ANNOTATION_TYPE) //注解
    @Target(ElementType.PACKAGE) //包

    2)@Retention: 定义注解的保留策略
    @Retention(RetentionPolicy.SOURCE)
    //注解仅存在于源码中,在class字节码文件中不包含
    @Retention(RetentionPolicy.CLASS)
    // 默认的保留策略,注解会在class字节码文件中存在,但运行时无法获得,
    @Retention(RetentionPolicy.RUNTIME) // 注解会在class字节码文件中存在,在运行时可以通过反射获取到

    3)@Document:说明该注解将被包含在javadoc中
    4)@Inherited:说明子类可以继承父类中的该注解

    三 Android support annotations

    1)Nullness注解:标识代码的参数或返回值是否可以null
    NullAble:可以为null
    2)Resource Type注解:资源类型注解 【@StringRes资源ID号】
    3)Threading注解
    4)Overriding Methods 注解: @CallSuper,调用父类的方法

    四 总结

    注解是如何被处理的?
    Annotation【看补充文件】
    <u>https://www.jianshu.com/p/28edf5352b63</u>

    相关文章

      网友评论

          本文标题:6 注解00

          本文链接:https://www.haomeiwen.com/subject/falfeftx.html