📅  最后修改于: 2023-12-03 15:01:35.726000             🧑  作者: Mango
自从Java 5引入注释以来,注释一直是Java语言中非常有用的元素。在Java 8中,注释得到了加强,包括重复注释和类型注释。
重复注释是一个允许您重复使用同一个注释类型的方法。以前,Java中的注释类型是不允许重复的。但是在Java 8中,重复注释是允许的。
以下是一个使用重复注释的例子。假设我们要在一个类中使用多个@Author
注释:
public class MyClass {
@Author(name = "John")
@Author(name = "Emily")
public void doSomething(){}
}
@Author
注释通过@Repeatable
注释进行标记,以告诉编译器它是可重复的注释类型。接下来,我们看看@Author
注解的定义:
import java.lang.annotation.*;
@Repeatable(Authors.class)
public @interface Author {
String name();
}
@Retention(RetentionPolicy.RUNTIME)
@interface Authors {
Author[] value();
}
注解可以使用@Repeatable
注释进行标记。@Author
注解实际上是通过一个包装注解@Authors
实现可重复的。通过这种方式,我们可以在同一个元素上使用多个@Author
注解。
Java 8引入了新的元素,称为类型注释。它们是特殊的注释,可以直接附加到类型使用处。这样,我们就可以在Java程序中提供更多的语义信息。
以下是:在声明变量时使用类型注释的示例:
List<@NotNull String> list = new ArrayList<>();
在这个例子中,我们使用@NotNull
注释来说明变量list可能不包含空值(null)。
类型注释可以作为任何类型使用。 我们可以将它们放在通用声明,使用声明或弃用声明中。 以下是一个示例:
public class MyClass<@NotNull T> {
public void myMethod() throws @CriticalException Exception {
// Method Code Here
}
public void myDeprecatedMethod() throws @Deprecated @BadPracticeException Exception {
// Method Code Here
}
}
Java8中的重复注释和类型注释是非常有用的功能。重复注释可以让我们重复使用同一类型的注释,而类型注释使我们可以在声明处添加语义信息。这些新元素为我们提供了更丰富的元数据,并可以更好地支持静态分析工具和框架。