// 注解的格式
The Format of an AnnotationIn its simplest form, an annotation looks like the following:
@Entity
// @这个标识符告诉编辑器这是一个注解,下面以重写(Override)这个注解为例
The at sign character (@
) indicates to the compiler that what follows is an annotation. In the following example, the annotation's name is Override
:
@Override void mySuperMethod() { ... }
// 注解可以包括属性(elements),这些属性可以是已命名的也可以的未命名的,而且他们可以有自己的属性值(values)
The annotation can include elements, which can be named or unnamed, and there are values for those elements:
@Author( name = "Benjamin Franklin", date = "3/27/2003" ) class MyClass() { ... }
or
@SuppressWarnings(value = "unchecked") void myMethod() { ... }
// 如果注解只有一个属性,而且属性名为value,那么属性名可以省略,正像下面这个例子展示的那样
If there is just one element named value
, then the name can be omitted, as in:
@SuppressWarnings("unchecked") void myMethod() { ... }
// 如果注解没有属性,那么括号也可以省略,比如前面@Override的例子
If the annotation has no elements, then the parentheses can be omitted, as shown in the previous @Override
example.
// 同一个位置可以使用多个注解
It is also possible to use multiple annotations on the same declaration:
@Author(name = "Jane Doe") @EBook class MyClass { ... }
// 如果是多个同类注解,这种情况被称作多重注解
If the annotations have the same type, then this is called a repeating annotation:
@Author(name = "Jane Doe") @Author(name = "John Smith") class MyClass { ... }
// Java SE 8 release 开始支持多重注解,想了解更多,请点击链接
Repeating annotations are supported as of the Java SE 8 release. For more information, see Repeating Annotations.
// 注解可以是Java SE API里面java.lang或者java.lang.annotation这些包里面已经定义的类型,比如前面提到的Override和SuppressWarnings都是
// java预定义注解。也可以是自定义类型,前面例子展示的Author和Ebook都是这一类。
The annotation type can be one of the types that are defined in the java.lang
or java.lang.annotation
packages of the Java SE API. In the previous examples,Override
and SuppressWarnings
are predefined Java annotations. It is also possible to define your own annotation type. The Author
and Ebook
annotations in the previous example are custom annotation types.