DBMNG数据库管理与应用

所有存在都是独创。
当前位置:首页 > MySQL > 常见问题

内置注解

12.4.8 内置注解

Java提供了许多内置注解。大部分是专用注解,但是有8个用于一般目的。在这个8个注解中,有4个来自java.lang.annotation包,分别是@Retention、@Documented、@Target和@Inherited;另外4个——@Override、@Deprecated、@SafeVarargs和@SuppressWarnings来自java.lang包。下面逐一介绍这些注解。

1. @Retention

@Retention被设计为只能用于注解其他注解。如前所述,@Retention用于指定保留策略。

2. @Documented

@Documented注解是标记接口,用于通知某个工具——注解将被文档化。@Documented被设计为只能注解其他注解。

3. @Target

@Target用于指定可以应用注解的声明的类型,被设计为只能注解其他注解。@Target只有一个参数,这个参数必须是来自ElementType枚举的常量,这个参数指定了将为其应用注解的声明的类型。表12-1中显示了这些常量以及与之对应的声明的类型。

表12-1 目标常量以及与之对应的声明的类型

 
在@Target注解中可以指定这些值中的一个或多个。为了指定多个值,必须在由花括号包围起来的列表中指定它们。例如,为了指定注解只能应用于域变量和局部变量,可以使用下面这个@Target注解:
  1. @Target( { ElementType.FIELD, ElementType.LOCAL_VARIABLE } ) 

4. @Inherited

@Inherited是标记注解,只能用于另外一个注解声明。此外,@Inherited只影响用于类声明的注解。@Inherited会导致超类的注解被子类继承。所以,当查询子类的特定注解时,如果那种注解在子类中不存在,就会检查超类。如果那种注解存在于超类中,并且如果使用@Inherited进行了注解,就将返回那种注解。

5. @Override

@Override是标记注解,只能用于方法。使用带有@Override注解的方法必须重写超类中的方法。如果不这样做的话,就会产生编译时错误。@Override注解用于确保超类方法被真正地重写,而不是简单地重载。

6. @Deprecated

@Deprecated是标记注解,用于指示声明是过时的,并且已经被更新的形式取代。

7. @SafeVarargs

@SafeVarargs是标记注解,只能用于方法和构造函数,指示没有发生与可变长度参数相关的不安全动作。如果不安全代码与不能具体化的varargs类型相关,或者与参数化的数组实例相关,那么@SafeVarargs注解用于抑制“未检查不安全代码”警告(本质上,不能具体化的类是泛型类,泛型将在第14章讨论)。@SafeVarargs注解只能用于varargs方法或者声明为static或final的构造函数。@SafeVarargs注解是由JDK 7新增的。

8. @SuppressWarnings

@SuppressWarnings注解用于指定能抑制一个或多个编译器可能会报告的警告。使用名称以字符串形式指定要被抑制的警告。这个注解可以用于所有类型的声明。

本站文章内容,部分来自于互联网,若侵犯了您的权益,请致邮件chuanghui423#sohu.com(请将#换为@)联系,我们会尽快核实后删除。
Copyright © 2006-2023 DBMNG.COM All Rights Reserved. Powered by DEVSOARTECH            豫ICP备11002312号-2

豫公网安备 41010502002439号