这些Java教程是针对JDK 8编写的。本页中描述的示例和实践不利用后续版本中引入的改进,并且可能使用不再可用的技术。
请参阅Java语言更改,了解Java SE 9及其后续版本中更新的语言特性的摘要。
请参阅JDK发行说明,了解有关所有JDK版本的新功能、增强功能以及已删除或不建议使用的选项的信息。
许多注解可以替代代码中的注释。
假设一个软件组惯例是在每个类的主体前面添加提供重要信息的注释:
public class Generation3List extends Generation2List { // 作者:John Doe // 日期:3/17/2002 // 当前修订版:6 // 最后修改:4/12/2004 // 由:Jane Doe // 评审人:Alice, Bill, Cindy // 类代码放在这里 }
要使用注解添加相同的元数据,首先必须定义注解类型。定义注解类型的语法如下:
@interface ClassPreamble { String author(); String date(); int currentRevision() default 1; String lastModified() default "N/A"; String lastModifiedBy() default "N/A"; // 注意数组的使用 String[] reviewers(); }
注解类型定义类似于接口定义,其中关键字interface
前面带有at符号(@
)(@ = AT,表示注解类型)。注解类型是接口的一种形式,将在以后的课程中介绍。目前,您不需要理解接口。
上一个注解定义的主体包含注解类型元素声明,它们看起来很像方法。请注意,它们可以定义可选的默认值。
在定义了注解类型之后,您可以像这样使用该类型的注解,并填充值:
@ClassPreamble ( author = "John Doe", date = "3/17/2002", currentRevision = 6, lastModified = "4/12/2004", lastModifiedBy = "Jane Doe", // 注意数组表示法 reviewers = {"Alice", "Bob", "Cindy"} ) public class Generation3List extends Generation2List { // 类代码放在这里 }
@ClassPreamble
中的信息出现在生成的Javadoc文档中,您必须在@ClassPreamble
定义中使用@Documented
注解:
// 导入此项以使用@Documented
import java.lang.annotation.*;
@Documented
@interface ClassPreamble {
// 注解元素定义
}