注解说明

注解

提供一种为数据元素设置元数据的方法

  • 元数据是添加到程序元素如方法,字段,类和包上的额外信息
  • 注解是一种分散式的元数据设置方式,XML是集中式的设置方式
  • 注解不能直接干扰程序代码的运行

注解的功能

  • 作为特定的标记,用于告诉编辑器一些信息
  • 编译时动态处理,如动态生成代码
  • 运行时动态处理,作为额外信息的载体,如获取注解信息

注解的分类

  • 标准注解:Override,Deprecated,SuppressWarnings
  • 元注解:@Retention,@Target,@Inherited,@Documented
  • 自定义注解

元注解
用于修饰注解的注解,通常用在注解的定义上

  • @Target:注解的作用目标
  • @Retention:注解的生命周期
  • @Documented:注解是否应当被包含在JavaDoc文档中
  • @Inherited:是否允许子类继承该注解

@Target
描述所修饰的注解的使用范围

  • packages,types(类,接口,枚举,Annotation类型)
  • 类型成员(方法,构造方法,成员变量,枚举值)
  • 方法参数和本地变量(如循环变量,catch参数)
public enum ElementType {
    /** 允许作用在类,接口,枚举上*/
    TYPE,

    /** 允许作用在属性字段上 */
    FIELD,

    /** 允许作用在方法上 */
    METHOD,

    /** 允许作用在方法参数上 */
    PARAMETER,

    /** 允许作用在构造器上 */
    CONSTRUCTOR,

    /** 允许作用在本地局部变量上 */
    LOCAL_VARIABLE,

    /** 允许作用在注解上 */
    ANNOTATION_TYPE,

    /** 允许作用在包上 */
    PACKAGE,

    /**
     * 允许作用在泛型类的实参上
     *
     * @since 1.8
     */
    TYPE_PARAMETER,

    /**
     * 允许作用在任何类型上
     *
     * @since 1.8
     */
    TYPE_USE
}

@Retention
用于定义注解的生命周期

public enum RetentionPolicy {
    /**
     * 在源文件中保留,编译过后去掉
     */
    SOURCE,

    /**
     * 不仅出现在源文件,class文件中也会有
     */
    CLASS,

    /**
     * 运行时获取注解信息,运行时有效
     * @see java.lang.reflect.AnnotatedElement
     */
    RUNTIME
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值