package-info.javaファイル
1. 概要
このチュートリアルでは、package-info。javaの目的とその有用性を理解します。 簡単に言うと、 package-infoはJavaファイルであり、任意のJavaパッケージに追加できます。
2. package-infoの目的
package-info.java ファイルは現在、次の2つの目的を果たします。
- パッケージレベルのドキュメントの場所
- パッケージレベルの注釈のホーム
上記以外にも、必要に応じてユースケースを拡張することができます。 将来、パッケージレベルの機能を追加する必要がある場合、このファイルは最適な場所になります。
現在のユースケースを詳しく調べてみましょう。
3. パッケージドキュメント
Javaバージョン5より前では、パッケージに関連するドキュメントはHTMLファイルpackage.htmlに配置されていました。 これは、bodyタグ内にJavadocコメントが配置された通常のHTMLファイルです。
JDK 5 が登場すると、 package.htmlは、 package.html よりも優先される新しいオプションpackage-info.java、に取って代わられました。 。
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以外として宣言する必要がある状況を考えてみます。 この目標を達成するには、null以外のパラメーターと戻り値の @NonNullApi アノテーション、null以外のフィールドのおよび@NonNullFieldsアノテーションを含めるだけです。 package-info.javaファイル。にあります
@NonNullFieldsおよび@NonNullApiは、 @Nullable として明示的にマークされていない限り、フィールド、パラメーター、および戻り値を非nullとしてマークします。
@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の新しいJavaパッケージオプションを使用すると、package-infoを生成できます。java:
上記の方法は、既存のパッケージでも機能します。 既存のパッケージの新規->パッケージオプションを選択し、パッケージの作成-info.javaオプションにチェックマークを付けます。
プロジェクトのコーディングガイドラインにpackage-info。javaを必須に含めることは常に良い習慣です。 SonarやCheckstyleなどのツールは、これを実現するのに役立ちます。
6. 結論
HTMLファイルとJavaファイルの使用法の主な違いは、Javaファイルを使用すると、Javaアノテーションを使用できる可能性が追加されることです。 したがって、 package-info java ファイルは、パッケージJava docs のホームであるだけでなく、パッケージ全体の注釈でもあります。 また、このユースケースのリストは将来拡張される可能性があります。
いつものように、コードはGitHubでから入手できます。