ホームページ > Java > &#&チュートリアル > Java アノテーションでのインターフェースと抽象クラスの適用

Java アノテーションでのインターフェースと抽象クラスの適用

PHPz
リリース: 2024-05-02 11:48:01
オリジナル
1161 人が閲覧しました

アノテーションは、インターフェイスまたは抽象クラスを通じて Java で定義し、クラス、メソッド、またはフィールドにメタデータを提供できます。注釈タイプとしてのインターフェース: java.lang.annotation.Annotation インターフェースの実装 (例: @MyAnnotation("Hello, world!") 注釈タイプとしての抽象クラス: java.lang.annotation.Annotation 抽象クラスの拡張 (例: @MyAnnotation) (値 "Hello, world!") 実際のケース: アノテーションを使用してメソッド パラメータを検証します。例: @NotNull を使用して、パラメータが null でないかどうかを確認します。そうでない場合は、例外がスローされます。

接口和抽象类在 Java 注解中的应用

アノテーションのインターフェイスと抽象クラス

アノテーションは、関連するクラス、メソッド、およびフィールドをコンパイラのメタデータに提供するために 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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート