カスタム アノテーション ガイド @interface キーワードを使用して Java でカスタム アノテーションを作成します。カスタム アノテーションを使用して、@Retention および @Target を通じてアノテーションの保持期間と適用場所を指定します。リフレクションを使用して注釈値を取得し、getDeclaredField を通じてフィールドの注釈を取得し、getAnnotation メソッドを使用して注釈オブジェクトを取得します。実際には、カスタム アノテーションを使用してロギングが必要なメソッドをマークすることができ、アノテーションは実行時にリフレクションを通じてチェックできます。
Java コードにカスタム アノテーションを適用する
はじめに
カスタム アノテーションは、Java コードにメタデータを追加するための強力なツールです。これらを使用すると、後の処理や分析のためにプログラムのさまざまな部分に追加情報を追加できます。この記事では、Java コードでカスタム アノテーションを作成、使用、処理する方法について説明します。
カスタム注釈を作成する
カスタム注釈を作成するには、@interface
キーワードを使用する必要があります。 @MyAnnotation
という名前のカスタム アノテーションを作成する例を次に示します。 @interface
关键字。以下是一个创建名为 @MyAnnotation
的自定义注解的示例:
import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.FIELD) public @interface MyAnnotation { String value() default "default"; }
@Retention(RetentionPolicy.RUNTIME)
:指定注解在运行时可用。这意味着注解可以在反射中访问。@Target(ElementType.FIELD)
:指定注解只能应用于字段。使用自定义注解
要使用自定义注解,请在您要附加元数据的字段上添加它。以下是如何使用 @MyAnnotation
public class MyClass { @MyAnnotation("custom value") private String myField; }
@Retention(RetentionPolicy.RUNTIME)
: 実行時のアノテーションを指定します。これは、アノテーションがリフレクションでアクセスできることを意味します。 @Target(ElementType.FIELD)
: 注釈をフィールドにのみ適用できることを指定します。 カスタム注釈の使用
カスタム注釈を使用するには、メタデータを追加するフィールドにカスタム注釈を追加します。@MyAnnotation
アノテーション フィールドの使用方法は次のとおりです。 Class myClass = MyClass.class; Field myField = myClass.getDeclaredField("myField"); MyAnnotation annotation = myField.getAnnotation(MyAnnotation.class); String value = annotation.value(); System.out.println(value); // 输出:"custom value"
カスタム アノテーションの処理
リフレクションを使用してカスタム アノテーションを処理できます。アノテーション値を取得する方法は次のとおりです:@Retention(RetentionPolicy.RUNTIME) @Target(ElementType.METHOD) public @interface Loggable { }
実際的なケース
以下は、カスタム アノテーションを使用してロギングが必要なメソッドをマークする方法を示す実際的なケースです:カスタム アノテーションを作成する
public class MyClass { @Loggable public void myMethod() { // ... } }
import java.lang.reflect.Method; public class AnnotationProcessor { public static void main(String[] args) throws Exception { Class myClass = MyClass.class; Method myMethod = myClass.getDeclaredMethod("myMethod"); Loggable annotation = myMethod.getAnnotation(Loggable.class); if (annotation != null) { System.out.println("Method is annotated with @Loggable"); } } }
Method is annotated with @Loggable
以上がJava コードにカスタム アノテーションを適用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。