成都创新互联网站制作重庆分公司

@Target注解,@Retention元注解和@Documented注解的使用方法

本篇内容介绍了“@Target注解,@Retention元注解和@Documented注解的使用方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

站在用户的角度思考问题,与客户深入沟通,找到回民网站设计与回民网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站建设、网站制作、企业官网、英文网站、手机端网站、网站推广、域名申请、网页空间、企业邮箱。业务覆盖回民地区。

@Target --用于定义在注解的上边,表明该注解可以使用的范围。
(1)进入源码后是这样的:

public @interface Target {
    ElementType[] value();
}

可以看出取值是一个数组,表明value可以取一个值,也可以取多个值。当取多值时,需用英文逗号隔开。
(2)进入到ElementType,是一个枚举类型:

public enum ElementType {
    TYPE,    //表明此注解可以用在类或接口上
    FIELD,     //表明此注解可以用在域上(还没用过,)
    METHOD,     //表明此注解可以用在方法上
    PARAMETER,     //表明此注解可以用在参数上
    CONSTRUCTOR,     //表明此注解可以用在构造方法上
    LOCAL_VARIABLE,     //表明此注解可以用在局部变量上
    ANNOTATION_TYPE,     //表明此注解可以用在注解类型上
    PACKAGE,     //用于记录java文件的package文件信息,
                   不使用在一般的类中,而用在固定文件package-info.java中。
                   注意命名一定是“package-info”。
                   由于package- info.java并不是一个合法的类,
                  使用eclipse创建类的方式会提示不合法,所以需要以创建
                  文件的方式来创建package-info.java。

    TYPE_PARAMETER,     //类型参数声明
    TYPE_USE  //类型使用声明 (未使用过,也不知道怎么用)
}

以下是关于Eclipse中无法创建package-info包的证明:

@Target注解,@Retention元注解和@Documented注解的使用方法

package-info.PNG

若@Target注解未指定value值,则表明被@Target修饰的注解可以用于任何范围。

注解@Retention可以用来修饰注解,是注解的注解,称为元注解。
Retention注解有一个属性value,是RetentionPolicy类型的,Enum RetentionPolicy是一个枚举类型,
这个枚举决定了Retention注解应该如何去保持,也可理解为Rentention 搭配 RententionPolicy使用。RetentionPolicy有3个值:CLASS  RUNTIME   SOURCE
按生命周期来划分可分为3类:
1、RetentionPolicy.SOURCE:注解只保留在源文件,当Java文件编译成class文件的时候,注解被遗弃;
2、RetentionPolicy.CLASS:注解被保留到class文件,但jvm加载class文件时候被遗弃,这是默认的生命周期;
3、RetentionPolicy.RUNTIME:注解不仅被保存到class文件中,jvm加载class文件之后,仍然存在;
这3个生命周期分别对应于:Java源文件(.java文件) ---> .class文件 ---> 内存中的字节码。
那怎么来选择合适的注解生命周期呢?
首先要明确生命周期长度 SOURCE < CLASS < RUNTIME ,所以前者能作用的地方后者一定也能作用。
一般如果需要在运行时去动态获取注解信息,那只能用 RUNTIME 注解,比如@Deprecated使用RUNTIME注解
如果要在编译时进行一些预处理操作,比如生成一些辅助代码(如 ButterKnife),就用 CLASS注解;
如果只是做一些检查性的操作,比如 @Override 和 @SuppressWarnings,使用SOURCE 注解。

注解@Override用在方法上,当我们想重写一个方法时,在方法上加@Override,当我们方法的名字出错时,编译器就会报错
注解@Deprecated,用来表示某个类或属性或方法已经过时,不想别人再用时,在属性和方法上用@Deprecated修饰
注解@SuppressWarnings用来压制程序中出来的警告,比如在没有用泛型或是方法已经过时的时候

@Documented注解

Documented注解表明这个注释是由 javadoc记录的,在默认情况下也有类似的记录工具。 如果一个类型声明被注释了文档化,它的注释成为公共API的一部分。

“@Target注解,@Retention元注解和@Documented注解的使用方法”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注创新互联网站,小编将为大家输出更多高质量的实用文章!


本文标题:@Target注解,@Retention元注解和@Documented注解的使用方法
本文网址:http://cxhlcq.com/article/jgjgcg.html

其他资讯

在线咨询

微信咨询

电话咨询

028-86922220(工作日)

18980820575(7×24)

提交需求

返回顶部