モジュール java.compiler
パッケージ javax.lang.model.type

インタフェースTypeVisitor<R,​P>

型パラメータ:
R - このビジターのメソッドの戻り型。 結果を返すことを必要としないビジターのVoidを使用する。
P - このビジターのメソッドに追加するパラメータの型。 追加のパラメータを必要としないビジターのVoidを使用する。
既知のすべての実装クラス:
AbstractTypeVisitor14, AbstractTypeVisitor6, AbstractTypeVisitor7, AbstractTypeVisitor8, AbstractTypeVisitor9, SimpleTypeVisitor14, SimpleTypeVisitor6, SimpleTypeVisitor7, SimpleTypeVisitor8, SimpleTypeVisitor9, TypeKindVisitor14, TypeKindVisitor6, TypeKindVisitor7, TypeKindVisitor8, TypeKindVisitor9

public interface TypeVisitor<R,​P>
ビジター・デザイン・パターンのスタイルによる型のビジターです。 このインタフェースを実装しているクラスは、コンパイル時に型の種類が未知の場合、型の操作に使用されます。 ビジターが型acceptメソッドに渡されると、その型に最も適用可能なvisitXyzメソッドが呼び出されます。

このインタフェースを実装するクラスは、追加パラメータpnullのときにNullPointerExceptionをスローする場合としない場合があります。詳細については、クラスの実装に関するドキュメントを参照してください。

APIのノート:
警告: このインタフェースには、Javaプログラミング言語の将来のバージョンに追加される新しい、現在不明な言語構造に対応するためのメソッドが追加される可能性があります。 このような追加は、このAPIの導入後に追加された言語機能をサポートするためにすでに行われています。 このインタフェースを直接実装するビジター・クラスは、将来のバージョンのプラットフォームとソースの互換性がない可能性があります。 このようなソースの非互換性を回避するために、ビジターの実装では、このインタフェースを実装する適切な抽象ビジター・クラスを拡張することをお薦めします。 ただし、APIは通常、抽象クラスのいずれかではなく、パラメータの型や戻り型などとして、このビジター・インタフェースを使用します。

新しい言語構造に対応するメソッドは、強力なソース互換性を提供するためにデフォルト・メソッドとして追加されることが期待されます。 デフォルト・メソッドの実装は、visitUnknownを呼び出します。この動作は、ソース・バージョンをサポートする具象ビジターで新しい言語構成でオーバーライドされます。

「utilパッケージ」には、このビジター・インタフェースを実装する複数のクラス・ファミリがあります。 ファミリは、FooVisitor Nの行に沿ったネーミング・パターンに従います。ここで、Nはビジターが適切な「ソース・バージョン」を示します。 特に、FooVisitor Nは、ソース・バージョンNに存在するすべての言語構造を処理する必要があります。 バージョンN + 1の(またはそれ以降のリリース)に新しい言語構造が追加されていない場合、 FooVisitor Nはその新しいソース・バージョンも処理できます。その場合、 FooVisitor NクラスのSupportedSourceVersion注釈は新しいバージョンを示します。 ソース・バージョンのNの後に導入された言語構造を表す型にアクセスすると、その動作がオーバーライドされないかぎり、 FooVisitor NUnknownTypeExceptionをスローします。

ビジター・ファミリのどのメンバーをサブクラス化するかを選択する場合、最新のメンバーをサブクラス化すると、対象となるソース・バージョンの範囲が増加します。 サブクラス化するビジター・ファミリを選択する場合は、組込み機能を考慮してください:

  • AbstractTypeVisitor s: スケルトン・ビジターの実装。
  • SimpleTypeVisitor s: デフォルトのアクションとデフォルトの戻り値をサポートします。
  • TypeKindVisitor s: per-kind粒度で提供される訪問メソッドは、タイプのカテゴリによっては複数の種類を持つことができます。

導入されたバージョン:
1.6
  • メソッドの詳細

    • visit

      R visit​(TypeMirror t, P p)
      型をビジットします。
      パラメータ:
      t - ビジットする型
      p - ビジター指定のパラメータ
      戻り値:
      ビジター指定の結果
    • visit

      default R visit​(TypeMirror t)
      visit(t, null)と同等の簡易メソッドです。
      実装要件:
      デフォルト実装はvisit(t, null)です。
      パラメータ:
      t - ビジットする要素
      戻り値:
      ビジター指定の結果
    • visitPrimitive

      R visitPrimitive​(PrimitiveType t, P p)
      プリミティブ型をビジットします。
      パラメータ:
      t - ビジットする型
      p - ビジター指定のパラメータ
      戻り値:
      ビジター指定の結果
    • visitNull

      R visitNull​(NullType t, P p)
      null型をビジットします。
      パラメータ:
      t - ビジットする型
      p - ビジター指定のパラメータ
      戻り値:
      ビジター指定の結果
    • visitArray

      R visitArray​(ArrayType t, P p)
      配列型をビジットします。
      パラメータ:
      t - ビジットする型
      p - ビジター指定のパラメータ
      戻り値:
      ビジター指定の結果
    • visitDeclared

      R visitDeclared​(DeclaredType t, P p)
      宣言された型をビジットします。
      パラメータ:
      t - ビジットする型
      p - ビジター指定のパラメータ
      戻り値:
      ビジター指定の結果
    • visitError

      R visitError​(ErrorType t, P p)
      エラー型をビジットします。
      パラメータ:
      t - ビジットする型
      p - ビジター指定のパラメータ
      戻り値:
      ビジター指定の結果
    • visitTypeVariable

      R visitTypeVariable​(TypeVariable t, P p)
      型変数をビジットします。
      パラメータ:
      t - ビジットする型
      p - ビジター指定のパラメータ
      戻り値:
      ビジター指定の結果
    • visitWildcard

      R visitWildcard​(WildcardType t, P p)
      ワイルドカード型をビジットします。
      パラメータ:
      t - ビジットする型
      p - ビジター指定のパラメータ
      戻り値:
      ビジター指定の結果
    • visitExecutable

      R visitExecutable​(ExecutableType t, P p)
      実行可能型をビジットします。
      パラメータ:
      t - ビジットする型
      p - ビジター指定のパラメータ
      戻り値:
      ビジター指定の結果
    • visitNoType

      R visitNoType​(NoType t, P p)
      NoTypeインスタンスをビジットします。
      パラメータ:
      t - ビジットする型
      p - ビジター指定のパラメータ
      戻り値:
      ビジター指定の結果
    • visitUnknown

      R visitUnknown​(TypeMirror t, P p)
      未知の種類の型をビジットします。 これは、言語が拡張され、新しい種類の型がTypeMirror階層に追加された場合に発生します。
      パラメータ:
      t - ビジットする型
      p - ビジター指定のパラメータ
      戻り値:
      ビジター指定の結果
      例外:
      UnknownTypeException - 必要に応じてビジターの実装はこの例外をスローできる
    • visitUnion

      R visitUnion​(UnionType t, P p)
      共用体型をビジットします。
      パラメータ:
      t - ビジットする型
      p - ビジター指定のパラメータ
      戻り値:
      ビジター指定の結果
      導入されたバージョン:
      1.7
    • visitIntersection

      R visitIntersection​(IntersectionType t, P p)
      共通部分型をビジットします。
      パラメータ:
      t - ビジットする型
      p - ビジター指定のパラメータ
      戻り値:
      ビジター指定の結果
      導入されたバージョン:
      1.8