• Java 注解总结


    一、注解定义

    注解早在J2SE1.5就被引入到Java中,主要提供一种机制,这种机制允许程序员在编写代码的同时可以直接编写元数据。

    二、元注解

    • Target                   说明了被修饰的注解的应用范围,也就是被修饰的注解可以用来注解哪些程序元素
    • Retention              表示一个注解类型会被保留到什么时候
    • Inherited               表明被修饰的注解类型是自动继承的。具体解释如下:若一个注解类型被Inherited元注解所修饰,则当用户在一个类声明中查询该注解类型时,若发现这个类声明中不包含这个注解类型,则会自动在这个类的父类中查询相应的注解类型,这个过程会被重复,直到该注解类型被找到或是查找完了Object类还未找到。
    • Documented         当一个注解类型被@Documented元注解所描述时,那么无论在哪里使用这个注解,都会被Javadoc工具文档化。
    • Repeatable          说明该注解标识的注解可以多次使用到同一个元素的声明上。

    三、Target

    ElementType枚举类中的常量

    • ANNOTATION_TYPE             表示该注解可以应用到其他注解上
    • CONSTRUCTOR              表示可以使用到构造器上
    • FIELD                                    表示可以使用到域或属性上
    • LOCAL_VARIABLE                表示可以使用到局部变量上。
    • METHOD                               可以使用到方法级别的注解上。
    • PACKAGE                              可以使用到包声明上。
    • PARAMETER                         可以使用到方法的参数上
    • TYPE                                     类、接口(包括注解类型)或enum声明
    • TYPE_USE                           注释所有类型的使用
    • TYPE_PARAMETER             在通用类,接口,方法等中注释类型参数

    四、Retention

    RetentionPolicy枚举类中的常量

    • SOURCE                               表明这个注解会被编译器忽略,并只会保留在源代码中。
    • CLASS                                  表明这个注解会通过编译驻留在CLASS文件,但会被JVM在运行时忽略,正因为如此,其在运行时不可见。
    • RUNTIME                             表示这个注解会被JVM获取,并在运行时通过反射获取。

    五、常见内建注解

    @Override

    @SuppressWarnings

    @Deprecated

    @FunctionalInterface

    六、自定义注解

    @Documented
    @Retention(RetentionPolicy.RUNTIME)
    @Target(ElementType.METHOD)
    @Inherited
    public @interface MethodInfo {
        String author() default "mk";
        String date();
        int version() default 1;
    }
  • 相关阅读:
    w3cschoolDjango中文教程
    Golang基本语法2
    w3cschool微信小程序开发文档服务端
    bianchenggo语言概要总结
    Golang语言简介1
    Spring中的@Transactional注解为什么要加rollbackFor = Exception.class之源码解析
    Java 编译期与运行期,别傻傻分不清楚!
    java为什么有些异常throw出去需要在函数头用throws声明,一些就不用?
    @Transactional(rollbackFor=Exception.class)的使用
    Lambda 表达式有何用处?如何使用?
  • 原文地址:https://www.cnblogs.com/maokun/p/7577695.html
Copyright © 2020-2023  润新知