文档

Java™ 教程-Java Tutorials 中文版
注解基础
Trail: Learning the Java Language
Lesson: Annotations

注解基础

注解的格式

在最简单的形式中,注解如下所示:

@Entity

at 字符(@)向编译器指示后面的内容是注解。在以下示例中,注解的名称为 Override

@Override
void mySuperMethod() { ... }

注解可以包括 elements (元素),这些元素可以命名或未命名,并且这些元素有值:

@Author(
   name = "Benjamin Franklin",
   date = "3/27/2003"
)
class MyClass() { ... }

或者

@SuppressWarnings(value = "unchecked")
void myMethod() { ... }

如果只有一个名为 value 的元素,则可以省略该名称,如:

@SuppressWarnings("unchecked")
void myMethod() { ... }

如果注解没有元素,则可以省略括号,如前面的 @Override 示例所示。

也可以在同一声明上使用多个注解:

@Author(name = "Jane Doe")
@EBook
class MyClass { ... }

如果注解具有相同的类型,则称为重复注解:

@Author(name = "Jane Doe")
@Author(name = "John Smith")
class MyClass { ... }

从 Java SE 8 发行版开始,支持重复注解。有关更多信息,请参阅 Repeating Annotations

注解类型可以是 Java SE API 的 java.langjava.lang.annotation 包中定义的类型之一。在前面的示例中,OverrideSuppressWarningspredefined Java annotations。也可以定义自己的注解类型。上一个示例中的 AuthorEbook 注解是自定义注解类型。

可以使用注解的位置

注解可以应用于声明:类,字段,方法和其他程序元素的声明。当在声明中使用时,按照规范,每个注解通常出现在它自己的行上。

从 Java SE 8 发行版开始,注解也可以应用于类型的 use (使用)。这里有些例子:

这种形式的注解称为 type annotation (类型注解)。有关更多信息,请参阅 Type Annotations and Pluggable Type Systems


Previous page: Annotations
Next page: Declaring an Annotation Type