package-info.java文件
- java
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軟件包的宿主,而且是整個軟件包的註釋。同樣,將來可以擴展此用例列表。