アノテーションは、インターフェイスまたは抽象クラスを通じて Java で定義し、クラス、メソッド、またはフィールドにメタデータを提供できます。注釈タイプとしてのインターフェース: java.lang.annotation.Annotation インターフェースの実装 (例: @MyAnnotation("Hello, world!") 注釈タイプとしての抽象クラス: java.lang.annotation.Annotation 抽象クラスの拡張 (例: @MyAnnotation) (値 "Hello, world!") 実際のケース: アノテーションを使用してメソッド パラメータを検証します。例: @NotNull を使用して、パラメータが null でないかどうかを確認します。そうでない場合は、例外がスローされます。
アノテーションのインターフェイスと抽象クラス
アノテーションは、関連するクラス、メソッド、およびフィールドをコンパイラのメタデータに提供するために Java で使用されます。 。インターフェイスと抽象クラスは注釈タイプとして使用できるため、注釈に特定の制約を定義できます。
アノテーション タイプとしてのインターフェイス
インターフェイスは、java.lang.annotation.Annotation
インターフェイスを実装することで、アノテーション タイプとして使用できます。例:
public @interface MyAnnotation { String value(); }
このアノテーションを使用します:
@MyAnnotation("Hello, world!") public class MyClass {}
抽象クラスをアノテーション タイプとして使用する
抽象クラスは、拡張することでアノテーション タイプとしても使用できます。 java.lang.annotation.Annotation
抽象クラス。例:
public abstract @interface MyAnnotation { String value(); }
このアノテーションを使用します:
@MyAnnotation(value="Hello, world!") public class MyClass {}
実際的なケース
次の実際的なケースでは、アノテーションを使用してメソッド パラメーターを確認します。
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.PARAMETER) public @interface NotNull { } public class MyClass { public void myMethod(@NotNull String param) { // 验证参数 non-null if (param == null) { throw new IllegalArgumentException("参数不能为空!"); } // 使用参数... } }
このアノテーションを使用します:
public class Client { public static void main(String[] args) { MyClass myClass = new MyClass(); myClass.myMethod("Hello, world!"); } }
このコードを実行すると、myMethod
メソッドのパラメーターが null 以外の値を提供しないため、IllegalArgumentException
がスローされます。
以上がJava アノテーションでのインターフェースと抽象クラスの適用の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。