インターフェース AnnotationTarget

すべての既知のサブインターフェース:
ArrayTypeClassInfoClassTypeDeclarationInfoFieldInfoMethodInfoPackageInfoParameterInfoParameterizedTypePrimitiveTypeRecordComponentInfoTypeTypeVariableVoidTypeWildcardType

public interface AnnotationTarget
アノテーションターゲットは、アノテーションを付けることができるものすべてです。あれは:
  • クラス、メソッド、フィールドなどの宣言
  • メソッドパラメーターの、フィールドの型、型引数、型パラメーター、ジェネリクスクラスまたはメソッドの宣言などに存在する型など。
hasAnnotationannotationrepeatableAnnotationannotations メソッドを使用して、このアノテーションターゲットに存在するアノテーションに関する情報を取得できます。「このアノテーションターゲットに存在する」という表現は、アノテーションが宣言されているか、このアノテーションターゲットで直接暗黙的に宣言されているか、このアノテーションターゲットがクラス宣言であり、アノテーションがスーパークラスから継承SEされていることを意味します。

反復可能なSEアノテーション型の複数のアノテーションがアノテーションターゲットで宣言されている場合、暗黙的に宣言されたコンテナーアノテーションのみがアノテーションターゲットに存在することに注意してください。最初に宣言されたアノテーションはそうではありません。反復可能なアノテーション型のアノテーションが 1 つだけアノテーションターゲットで宣言されている場合、そのアノテーションは存在します。

アノテーションは AnnotationInfo として表されるため、このインターフェースの実装でアノテーション型をインスタンス化する必要はありません。

equals および hashCode メソッドを定義するには、このインターフェースの実装が必要です。このインターフェースの実装では、対応する Java™ に似たテキストを返すように toString メソッドを定義することをお勧めします。構文。

このインターフェースの実装によって表される特定の構成体が、常に同じオブジェクトによって表されるという保証はありません。これには、java.lang.Object クラス宣言や void 疑似型などの自然なシングルトンが含まれます。インスタンスは常に equals を使用して比較する必要があります。

導入:
4.0
  • メソッドの詳細

    • isDeclaration

      boolean isDeclaration()
      このアノテーションターゲットが宣言であるかどうかを返します。
      戻り値:
      これが宣言の場合は true、それ以外の場合は false 
    • isType

      boolean isType()
      このアノテーションターゲットが type かどうかを返します。
      戻り値:
      これが型の場合は true、それ以外の場合は false 
    • asDeclaration

      DeclarationInfo asDeclaration()
      このアノテーションターゲットを宣言として返します。
      戻り値:
      この宣言は、決して null ではありません
      例外:
      IllegalStateExceptionSE - isDeclaration() が false を返す場合
    • asType

      Type asType()
      このアノテーションターゲットを type として返します。
      戻り値:
      この型、決して null
      例外:
      IllegalStateExceptionSE - isType() が false を返す場合
    • hasAnnotation

      boolean hasAnnotation(ClassSE<? extends AnnotationSE> annotationType)
      指定された型のアノテーションがこのアノテーションターゲットに存在するかどうかを返します。
      パラメーター:
      annotationType - アノテーション型。null であってはなりません
      戻り値:
      指定されたアノテーション型がこのアノテーションターゲットに存在する場合は true、それ以外の場合は false 
    • hasAnnotation

      boolean hasAnnotation(PredicateSE<AnnotationInfo> predicate)
      指定された述語が、このアノテーションターゲットに存在するアノテーションと一致するかどうかを返します。
      パラメーター:
      predicate - アノテーション述語。null であってはなりません
      戻り値:
      指定された述語がこのアノテーションターゲットに存在するアノテーションと一致する場合は true、それ以外の場合は false
    • annotation

      <T extends AnnotationSE> AnnotationInfo annotation(ClassSE<T> annotationType)
      このアノテーションターゲットに存在する場合、指定された型のアノテーションを返します。そのようなアノテーションが存在しない場合は、null を返します。
      型パラメーター:
      T - アノテーションのジェネリクス型
      パラメーター:
      annotationType - アノテーション型。null であってはなりません
      戻り値:
      そのようなアノテーションが存在しない場合は AnnotationInfo または null 
    • repeatableAnnotation

      <T extends AnnotationSE> CollectionSE<AnnotationInfo> repeatableAnnotation(ClassSE<T> annotationType)
      このアノテーションターゲットに存在する特定の反復可能なSEannotationType のアノテーションのコレクションを返します。そのようなアノテーションが存在しない場合は、空のコレクションを返します。

      このメソッドの目的のために、コンテナーアノテーションの value メンバー内のアノテーションは、@RepeatableSE を使用して定義されているように、コンテナーアノテーションが存在するアノテーションターゲットに存在すると見なされます。

      型パラメーター:
      T - アノテーションのジェネリクス型
      パラメーター:
      annotationType - @Repeatable アノテーション型。null であってはなりません
      戻り値:
      AnnotationInfo の不変コレクション、決して null
    • annotations

      指定された述語に一致する、このアノテーションターゲットに存在するすべてのアノテーションのコレクションを返します。そのようなアノテーションが存在しない場合は、空のコレクションを返します。
      パラメーター:
      predicate - アノテーション述語。null であってはなりません
      戻り値:
      AnnotationInfo の不変コレクション、決して null
    • annotations

      このアノテーションターゲットに存在するすべてのアノテーションのコレクションを返します。アノテーションが存在しない場合は、空のコレクションを返します。
      戻り値:
      AnnotationInfo の不変コレクション、決して null