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

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

型パラメータ:
R - このビジターのメソッドの戻り型。 結果を返すことを必要としないビジターのVoidを使用する。
P - このビジターのメソッドに追加するパラメータの型。 追加のパラメータを必要としないビジターのVoidを使用する。
既知のすべての実装クラス:
AbstractElementVisitor14, AbstractElementVisitor6, AbstractElementVisitor7, AbstractElementVisitor8, AbstractElementVisitor9, ElementKindVisitor14, ElementKindVisitor6, ElementKindVisitor7, ElementKindVisitor8, ElementKindVisitor9, ElementScanner14, ElementScanner6, ElementScanner7, ElementScanner8, ElementScanner9, SimpleElementVisitor14, SimpleElementVisitor6, SimpleElementVisitor7, SimpleElementVisitor8, SimpleElementVisitor9

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

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

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

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

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

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

  • AbstractElementVisitor s: スケルトン・ビジターの実装。
  • SimpleElementVisitor s: デフォルトのアクションとデフォルトの戻り値をサポートします。
  • ElementKindVisitor s: 一部のカテゴリの要素は複数の種類を持つことができるため、per-kind粒度で提供される訪問メソッド。
  • ElementScanner s: スキャナは、要素および「囲み」要素を横断してそれに関連付けるビジターです。

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

    • visit

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

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

      R visitPackage​(PackageElement e, P p)
      パッケージ要素をビジットします。
      パラメータ:
      e - ビジットする要素
      p - ビジター指定のパラメータ
      戻り値:
      ビジター指定の結果
    • visitType

      R visitType​(TypeElement e, P p)
      型要素をビジットします。
      パラメータ:
      e - ビジットする要素
      p - ビジター指定のパラメータ
      戻り値:
      ビジター指定の結果
    • visitVariable

      R visitVariable​(VariableElement e, P p)
      変数要素をビジットします。
      パラメータ:
      e - ビジットする要素
      p - ビジター指定のパラメータ
      戻り値:
      ビジター指定の結果
    • visitExecutable

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

      R visitTypeParameter​(TypeParameterElement e, P p)
      型パラメータ要素をビジットします。
      パラメータ:
      e - ビジットする要素
      p - ビジター指定のパラメータ
      戻り値:
      ビジター指定の結果
    • visitUnknown

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

      default R visitModule​(ModuleElement e, P p)
      モジュール要素をビジットします。
      実装要件:
      デフォルトの実装では、visitUnknown(e, p)を呼び出して ModuleElementを参照します。
      パラメータ:
      e - ビジットする要素
      p - ビジター指定のパラメータ
      戻り値:
      ビジター指定の結果
      導入されたバージョン:
      9
    • visitRecordComponent

      default R visitRecordComponent​(RecordComponentElement e, P p)
      このメソッドは、Java言語のプレビュー機能であるrecordに関連付けられています。 プレビュー機能は、将来のリリースで削除されるか、Java言語の永続機能にアップグレードされる可能性があります。

      レコード・コンポーネント要素を訪問します。
      実装要件:
      デフォルトの実装では、visitUnknown(e, p)を呼び出して RecordComponentElementを参照します。
      パラメータ:
      e - ビジットする要素
      p - ビジター指定のパラメータ
      戻り値:
      ビジター指定の結果
      導入されたバージョン:
      14