拨开荷叶行,寻梦已然成。仙女莲花里,翩翩白鹭情。
IMG-LOGO
主页 文章列表 package-info.java文件

package-info.java文件

白鹭 - 2021-11-24 560 0 0

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:

package-info.java文件

因此,就像我们在其他地方编写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

package-info.java文件

Eclipse的New Java Package选项允许我们生成package-info.java

package-info.java文件

上面的方法也适用于现有的程序包。选择现有的软件包, New-> Package选项,然后勾选Create package-info.java选项。

在我们的项目编码指南中package-info.java包括在内始终是一个好习惯。诸如SonarCheckstyle之类的工具可以帮助实现这一目标。

六,结论

HTML和Java文件用法之间的主要区别在于,对于Java文件,我们还有使用Java注释的可能性。因此, package-info java文件不仅是Javadoc软件包的宿主,而且是整个软件包的注释。同样,将来可以扩展此用例列表。

标签:

0 评论

发表评论

您的电子邮件地址不会被公开。 必填的字段已做标记 *