JAVA注解简单了解与使用

注解可对类、接口、字段、方法参数、局部变量等进行标记。

元注解是Java API提供的注解,是用来定义注解的注解。元注解可以限制注解标注的位置@target,生命周期@Retenstion等。

@Target注解指明此注解用在哪个位置,如果不写默认是任何地方都可以使用。

 由下图可以看出上面@Target(ElementType.ANNOTATION_TYPE)注解选择了作用在注解上

若要作用在方法上则如@Target(ElementType.METHOD)

@Target注解参数选择枚举类

public enum ElementType {

    /** 
       用在类,接口上
    */
    TYPE,

    /** 
       用在成员变量上 
    */
    FIELD,

    /** 
       用在方法上 
    */
    METHOD,

    
    /** 
       用在参数上 
    */
    PARAMETER,

    
    /** 
       用在构造方法上
    */
    CONSTRUCTOR,

    
    /** 
       用在局部变量上
    */
    LOCAL_VARIABLE,

    
    /** 
       用在注解上 
    */
    ANNOTATION_TYPE,

    
    /** 
       用在包上,记录信息 
    */
    PACKAGE,

}

@Retention定义注解的生命周期(有效范围)。  

 由下图可以看出上面@Retention(RetentionPolicy.RUNTIME)注解选择生命周期是存在源码中、编译中、运行中。

public enum RetentionPolicy {

    /**
     * 注解只存在于Java源代码中,编译生成的字节码文件中就不存在。
     */
    SOURCE,

    /**
     * 注解存在于Java源代码、编译以后的字节码文件中,运行的时候内存中就不存在,默认值选项。
     */
    CLASS,

    /**
     * 注解存在于Java源代码中、编译以后的字节码文件中、运行时内存中,程序可以通过反射获取该注解。
     */
    RUNTIME
}

自己定义一个注解

 加入注解参数(可自定义),可以给默认值如下我加了默认值(default)

 

加入生命周期与作用范围 

 

 将自定义注解绑定到属性上,使用默认值或输入值

 

 在这里我通过在自定义的User类中定义annotationInfo()方法中获取注解信息,一般情况下是在拦截器中进行的,并且要注意是通过使用加注解的地方如属性、方法等进行获取注解,我注解加在name属性上所以我通过name来获取注解,否则会出现空指针或获取不到值的情况。

了解反射详情:JAVA 反射简单应用_wuyingle1的博客-CSDN博客

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值