アノテーションは、Java Development Kit (JDK) の 1.5 バージョンで導入または使用可能になりました。 Java のアノテーションは、コード構造内に存在するデータに関する詳細情報、つまりメタデータとも呼ばれるデータに関するデータを提供します。
アノテーションは、標準化された方法でコード内のメタデータを定義するのに役立ちます。また、アノテーションは、Java コードのコンパイル中に従うべき指示を Java コンパイラに提供するのにも役立ちます。
無料ソフトウェア開発コースを始めましょう
Web 開発、プログラミング言語、ソフトウェア テスト、その他
注釈を使用するときは、「@」記号の後に注釈の名前を続けて使用します。これにより、コンパイラーは注釈を注釈として扱います。
注釈は以下の前に追加できることに注意することが重要です。
覚えておくべき重要な点は、すべてのアノテーションが java.lang.annotation.Annotation インターフェースを拡張するということです。また、注釈には拡張句を含めることはできません。
Java には、@Override、@Deprecated、@SuppressWarnings などの組み込みアノテーションがあり、これらは特定の目的のために設計され、上記の状況のいずれか (たとえば、クラスのみ、またはクラスのみ) で使用されます。メソッドなど
コード:
class Dad { public void say() { System.out.println("Do your homework"); } } public class Child extends Dad { @Override public void say(){ System.out.println("I wanna play"); } public static void main(String args[]){ Dad daddy = new Child(); daddy.say(); } }
出力:
コード:
public class Outdated { @Deprecated public void oldShow() { System.out.println("This Method is deprecated"); } public static void main(String args[]) { Outdated od = new Outdated (); od.oldShow(); } }
出力:
メタアノテーションには 5 つのタイプがあります:
例 – 文書化と保持
コード:
import java.lang.annotation.*; @Retention(RetentionPolicy.RUNTIME) @interface RSample { String rentent(); } @Documented @interface DSample { String doc(); } public class MetaAnnotate { public static void main(String arg[]) { new MetaAnnotate().rentent(); new MetaAnnotate().doc(); } @RSample (rentent="Meta Info R") public void rentent() { System.out.println("Retention Policy Applied"); } @DSample(doc="Meta Info D") public void doc() { System.out.println("Code Documented with the value"); } }
出力:
説明:
注釈には 3 つのカテゴリがあり、次のとおりです。
1.マーカー注釈 – これらのタイプの注釈は、以下の関数またはクラスが何であるかを開発者に通知するための宣言として使用されます。つまり、関数が別の関数をオーバーライドしているかどうかなど、関数またはクラスに関する追加情報を共有します。非推奨になった関数など。 @Override、@Deprecated はマーカー アノテーションと見なされます。
例: DemoAnnotation()
2.単一値の注釈 – この種の注釈は、注釈が前に配置されるメンバーの値を指定する値を取り込むため、そのメンバーの名前を指定する必要はありません。
例: DemoAnnotation(“custId123”)
3.完全な注釈 – この種の注釈は、複数の値、ペア、メンバーを受け取ります。
例: DemoAnnotation(category=”Toys”, value=1500)
以下の例に示すように、カスタム注釈はユーザー インターフェイスによって作成され、その後に注釈名が続きます。
ファイル 1: 定義されたカスタム アノテーション
import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; @Target({ElementType.TYPE, ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME) @interface Magicians { String Wizard() default "Reynolds"; String House() default "Green"; } @Magicians public class Magician { @Magicians(Wizard = "Harry Potter", House = "Red") public String getString() { return null; } }
ファイル 2: カスタム アノテーション クラスを呼び出すメイン クラス
import java.lang.annotation.Annotation; import java.lang.reflect.AnnotatedElement; import java.lang.reflect.Method; public class MyCustomAnnotation { public static void main(String[] args) throws NoSuchMethodException, SecurityException { new Magician(); Class<Magician> magic = Magician.class; readAnnotationOn(magic); Method method = magic.getMethod("getString", new Class[]{}); readAnnotationOn(method); } static void readAnnotationOn(AnnotatedElement element) { try { System.out.println("\n Find annotations on " + element.getClass().getName()); Annotation[] annotations = element.getAnnotations(); for (Annotation annotation : annotations) { if (annotation instanceof Magicians) { Magicians mData = (Magicians) annotation; System.out.println("Wizard Name :" + mData.Wizard()); System.out.println("Wizard House Color :" + mData.House()); } } } catch (Exception e) { e.printStackTrace(); } } }
出力:
この記事では、Java アノテーションとは何か、その型について例を交えて説明し、Java が提供する組み込みアノテーションの例を確認し、カスタム アノテーションをコーディングしました。コードの標準化に役立ち、コードとその構造をより深く理解するのにも役立つ注釈を確認しました。
以上がJava アノテーションの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。