Java アノテーションの概要
アノテーションベースの Java 開発が最新の開発トレンドであることは間違いありません。[翻訳者注: これは 2005 年の記事です。2014 年には、アノテーションの使用が協同組合における優れたソリューションになっているのは間違いありません。方法、相互影響とカップリングは非常に低い可能性があります]。
アノテーション ベースの開発により、Java 開発者は煩雑で面倒な構成ファイルから解放されます。アノテーションは、この JDK バージョンの機能の 1 つであり、プログラマが Java サンプル API ファイルを作成する作業をコンパイラに移します。 . 個別のソース コードと API ドキュメントが保守されなくなると、コードとドキュメントの保守が容易になります。また、生成されたコード サンプルにバグが含まれる可能性も低くなります。
Java アノテーションは JDK 5 の主な機能の 1 つであり、開発をよりシンプルかつ容易にします。 アノテーションは一種のメタ情報 (メタ、特別なプログラムが参照できる追加情報として理解できます) のようなもので、コード内に追加できます。 、パッケージ宣言、型宣言、コンストラクター、メソッド、フィールド、パラメーター、変数で使用できます。これらは、メソッドが他のメソッドに依存しているかどうか、完全であるかどうか、クラスが他のクラスを参照しているかどうかなどを示す効率的な方法を提供します。
Oracle の公式 Web サイトから引用すると、「これ (アノテーション ベースの開発) により、多くの場合、別の API ドキュメントを作成する必要がなくなります。ソース コードからアノテーションを生成するツールを有効にするだけで済みます。この宣言型プログラミング スタイルは、プログラマは、何をしなければならないかを、コードに従ってツールにやらせればよいと言います。」
簡単に言えば、アノテーションはメタタグをプログラム要素に関連付けるメカニズムであり、コンパイラまたは JVM がアノテーション付き要素からプログラムの動作を抽出し、必要に応じて相互依存するコードを生成できるようにします。
この連載記事の最初の部分では、基本的な Java アノテーション、その利点、およびいくつかの使用例を紹介します。
Java アノテーションの基本
1 つは「アノテーション」(アノテーション、新しいオブジェクトに似ています) 自体、もう 1 つは「アノテーション タイプ」(アノテーション タイプ、クラス定義に似ています) について理解する必要があります。コードでは、実際にはアノテーション タイプはアノテーションを定義するために使用されます。 type は実際に使用される構築された型であり、annotation はその型の特定の使用法にすぎません。
注釈タイプを定義する場合は、「アット」(@、中国ではこれを丸と発音する人もいます) マークを使用し、その後にキーワード インターフェイスと注釈の名前を使用する必要があります。注釈の最初にアットマーク (@) を記述し、その後に注釈の種類を記述します。また、これは注釈の最も単純な形式です。また、注釈を使用する場合は、名前の後に括弧を追加して、必要なパラメータを含めることができます。次にそれらの例を示します。
アノテーションタイプの定義例:(Annotation Type、アノテーションタイプ、クラスの定義と同様)
次のようにコードをコピーします。
public @interface MyAnnotation {
文字列 doSomething();
}
通常のコードでのアノテーション(Annotationインスタンス)の使用
次のようにコードをコピーします。
@MyAnnotation (doSomething="何をするか")
public void mymethod() {
....
}
Java アノテーション タイプ (アノテーション タイプ)
注釈には次の 3 種類があります。
マーカー: マーカー タイプの注釈には要素はなく、名前のみがあります。
意味:
次のようにコードをコピーします。
// この種のアノテーションはラベルのようなもので、ステータスはありません
// メソッド定義なしで Serializable インターフェイスに少し似ています
public @interface AMarkerAnnotation {
}
使用:
次のようにコードをコピーします。
@AMarkerAnnotation
public void mymethod() {
....
}
単一要素のアノテーション: 単一要素または単一値のアノテーションは、データを 1 つだけ保持します。括弧内で data=value として表現することも、値を 1 つだけ渡すこともできます (単純な記述方法)。
意味:
次のようにコードをコピーします。
public @interface SingleElementAnnotation
{
文字列 doSomething();
}
使用:
次のようにコードをコピーします。
@SingleElementAnnotation (「対応する型の値のみを渡すことができます」)
public void mymethod() {
....
}
完全値または複数値の注釈: 完全値型の注釈には複数のデータ メンバーがあるため、各メンバーに対して完全な data=value 構文形式を使用してパラメーターを渡す必要があります。
意味:
次のようにコードをコピーします。
public @interface FullValueAnnotation {
文字列 doSomething();
int カウント;
文字列日付();
}
使用:
次のようにコードをコピーします。
@FullValueAnnotation (doSomething="パラメータ値", count=1,
日付 = "2005 年 9 月 9 日")
public void mymethod() {
....
}
Java アノテーション タイプを定義する場合の考慮事項
注釈タイプを定義する際の注意事項:
1. 注釈の宣言はアットマーク (@) で始まり、その後にインターフェイス キーワードと注釈の名前が続きます。
2. アノテーション内のメソッド宣言はパラメータを受け入れません (メソッドのように見えるだけですが、本質的には属性ドメインです)。
3. アノテーション内のメソッド宣言には throws 節を含めることはできません。
4. アノテーション内のメソッドの戻り値の型は次のもののみです。
@primitives (6 つのプリミティブ データ型、int、byte など)
@文字列(文字列)
@Class(String.classなどのクラス)
@enum(列挙)
上記のタイプの @array (配列、配列要素は上記のタイプの 1 つだけです)
Java アノテーションの種類
JDK5 には 2 種類のアノテーションがあります。
1. 単純なアノテーション (単純なアノテーション タイプ): これらは Tiger によって提供される基本的なタイプであり (Tiger は JDK1.5 のコード名ですか?)、通常のコードにアノテーションを付けるためにのみ使用できます。別のカスタム アノテーション タイプを作成するために使用することはできません。 。
2.メタ アノテーション: 他のアノテーション タイプの宣言にアノテーションを付けるために特別に設計されたもので、簡単に言えば、アノテーションのアノテーションと呼ばれます。