查看: 1924|回复: 0

[Java代码] JAVA的注解(Annotations)

发表于 2018-2-1 08:00:03

一、哪里可以使用注解
可以使用在类、域变量(对象属性变量)、方法、其他程序元素的申明,按照惯例写在申明行的上面,如:
@Override
void mySuperMethod() { ... }
@Author(name = "Jane Doe")
@Author(name = "John Smith")
class MyClass { ... }
二、申明一个注解类型(可以理解为注入类体的一种元数据)
语法如下:
@interface ClassPreamble {
String author();
String date();
int currentRevision() default 1;
String lastModified() default "N/A";
String[] reviewers();
}
定义之后,可以这样使用:
@ClassPreamble (
author = "John Doe",
date = "3/17/2002",
currentRevision = 6,
lastModified = "4/12/2004",
reviewers = {"Alice", "Bob", "Cindy"}
)
public class Generation3List extends Generation2List {...}
三、预定义注解(API提供的注解)
java.lang包中(系Java编译): @Deprecated, @Override, and @SuppressWarnings;
@SafeVarargs:抑制不定长参数的安全性检测告警
@FunctionalInterface:函数式接口
java.lang.annotation包中(元注解-定义注解使用):
@Retention 将标记的注解存在哪
RetentionPolicy.SOURCE – The marked annotation is retained only in the source level and is ignored by the compiler.
RetentionPolicy.CLASS – The marked annotation is retained by the compiler at compile time, but is ignored by the Java Virtual Machine (JVM).
RetentionPolicy.RUNTIME – The marked annotation is retained by the JVM so it can be used by the runtime environment.



回复

使用道具 举报