1.概述
在本教程中,我们将了解package-info.java
的用途及其有用性。简而言之, package-info
是一个Java文件,可以将其添加到任何Java package中。
2. package-info
package-info.java
文件当前有两个用途:
- 包级文档的地方
- 程序包级注解annotation的目录
除上述内容外,还可以根据需要扩展用例。将来,如果需要添加任何程序包级功能,则此文件将是理想的选择。
让我们详细研究当前用例。
3.Package文件
在Java版本5之前,与包相关的文档放置在HTML文件package.html
。这只是一个普通的HTML文件,其中Javadoc注释位于body
标签内。
随着JDK 5的出现, package.html
被一个新选项package-info.java
取代, package.html
,现在它更受欢迎。
package-info.java
文件中查看软件包文档的示例:
/**
* This module is about impact of the final keyword on performance
* <p>
* This module explores if there are any performance benefits from
* using the final keyword in our code. This module examines the performance
* implications of using final on a variable, method, and class level.
* </p>
*
* @since 1.0
* @author baeldung
* @version 1.1
*/
package com.baeldung.finalkeyword;
上面的package-info.java
将生成Javadoc:
因此,就像我们在其他地方编写Javadoc一样,我们可以将程序包Javadoc放在Java源文件中。
4.包注解
假设我们必须对整个包应用注释。在这种情况下, package-info.java
可以为我们提供帮助。
考虑一种情况,默认情况下我们需要将字段,参数和返回值声明为非空。我们可以通过简单地为非null参数和返回值添加@NonNullApi
以及package-info.java
文件中用于非null字段@NonNullFields
.
@NonNullFields
和@NonNullApi
会将字段,参数和返回值标记为非null,除非将它们显式标记为@Nullable
:
@NonNullApi
@NonNullFields
package com.baeldung.nullibility;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;
在包级别可以使用各种注释。例如,在Hibernate项目中,我们有一个注释类别,而JAXB项目中也有 包级注释。
5.如何创建package-info
文件
创建一个package-info
文件非常简单:我们可以手动创建它,也可以寻求IDE帮助来生成它。
在IntelliJ IDEA中,我们可以右键单击该软件包,然后选择New-> package-info.java
:
Eclipse的New Java Package
选项允许我们生成package-info.java
:
上面的方法也适用于现有的程序包。选择现有的软件包, New-> Package
选项,然后勾选Create package-info.java
选项。
在我们的项目编码指南中package-info.java
包括在内始终是一个好习惯。诸如Sonar或Checkstyle之类的工具可以帮助实现这一目标。
六,结论
HTML和Java文件用法之间的主要区别在于,对于Java文件,我们还有使用Java注释的可能性。因此, package-info java
文件不仅是Javadoc软件包的宿主,而且是整个软件包的注释。同样,将来可以扩展此用例列表。
0 评论