Annotations, a form of metadata, provide data about a program that is not part of the program itself. Annotations have no direct effect on the operation of the code they annotate.
Annotations have a number of uses, among them:
- Information for the compiler — Annotations can be used by the compiler to detect errors or suppress warnings.
- Compile-time and deployment-time processing — Software tools can process annotation information to generate code, XML files, and so forth.
- Runtime processing — Some annotations are available to be examined at runtime.
通常在声明类或方法时使用annotation。我们在使用很多框架或工具时都会用到annotation,例如JUnit中会使用@Test public void method() 来表明当运行JUnit时,测试这个method。下面是annotation的示例:
@Author(name = "Jane Doe")
@EBook //一个class可以有多个annotation,且annotation可带参数。
class MyClass { ... }
@Override
void mySuperMethod() { ... }
Annotations can be applied to declarations: declarations of classes, fields, methods, and other program elements. 从java 8开始支持对type使用annotation。见下文:
https://docs.oracle.com/javase/tutorial/java/annotations/basics.html