インタフェースClassHierarchyResolver

関数型インタフェース:
これは関数型インタフェースなので、ラムダ式またはメソッド参照の代入先として使用できます。

@FunctionalInterface public interface ClassHierarchyResolver
ClassHierarchyResolverは、JavaプラットフォームのプレビューAPIです。
プレビュー機能が有効な場合のみ、プログラムでClassHierarchyResolverを使用できます。
プレビュー機能は、今後のリリースで削除するか、Javaプラットフォームの永続機能にアップグレードすることができます。
コード構築中に正しいスタック・マップを生成するためのクラス階層情報を提供します。
導入されたバージョン:
22
  • メソッドの詳細

    • defaultResolver

      static ClassHierarchyResolverPREVIEW defaultResolver()
      リフレクションを使用してシステム・クラス・ローダーからClassHierarchyResolver.ClassHierarchyInfoPREVIEWを取得するClassHierarchyResolverPREVIEWのデフォルト・インスタンスを返します。
      戻り値:
      リフレクションを使用してシステム・クラス・ローダーからClassHierarchyResolver.ClassHierarchyInfoPREVIEWを取得するClassHierarchyResolverPREVIEWのデフォルト・インスタンス
    • getClassInfo

      指定されたクラス名のClassHierarchyResolver.ClassHierarchyInfoPREVIEWを返します。リゾルバで名前が不明な場合はnullを返します。
      パラメータ:
      classDesc - クラスの記述子
      戻り値:
      指定されたクラス名のClassHierarchyResolver.ClassHierarchyInfoPREVIEW、またはリゾルバで名前が不明な場合はnull
      例外:
      IllegalArgumentException - クラスを階層に問い合せるべきでない場合
    • orElse

      このClassHierarchyResolverPREVIEWを、指定されたクラスについてこのリゾルバが認識していない場合に参照する別のClassHierarchyResolverPREVIEWと連鎖します。
      実装要件:
      デフォルトの実装では、このリゾルバがnullを返す場合に、他のリゾルバに問い合せるために実装されたリゾルバが返されます。
      パラメータ:
      other - 他のリゾルバ
      戻り値:
      連鎖リゾルバ
    • cached

      このリゾルバからクラス階層情報をキャッシュするClassHierarchyResolverを返します。 委任リゾルバが別の方法で返された場合、返されたリゾルバは更新されません。 返されるリゾルバのスレッド・セーフティは、cacheFactoryによって返されるマップのスレッド・セーフティに依存します。
      実装要件:
      デフォルトの実装では、cacheFactoryによって提供されるキャッシュ・マップのインスタンスを保持するリゾルバが返されます。 キャッシュ・マップは常に最初に要求され、キャッシュ・マップにすべての解決済および未解決のクラス情報が入力されます。 キャッシュ・マップは、nullキーおよび値を拒否する場合があります。
      パラメータ:
      cacheFactory - キャッシュのファクトリ
      戻り値:
      キャッシュを使用したClassHierarchyResolver
    • cached

      このリゾルバからクラス階層情報をキャッシュするClassHierarchyResolverを返します。 委任リゾルバが別の方法で返された場合、返されたリゾルバは更新されません。 返されたリゾルバはスレッド・セーフではありません。
      MethodHandles.Lookup lookup = ...;
      ClassHierarchyResolver resolver = ClassHierarchyResolver.ofClassLoading(lookup).cached();
      
      実装要件:
      デフォルトの実装では、HashMapサプライヤをcacheFactoryとしてcached(Supplier)がコールされます。
      戻り値:
      ClassHierarchyResolver
    • ofResourceParsing

      static ClassHierarchyResolverPREVIEW ofResourceParsing(Function<ClassDesc,InputStream> classStreamResolver)
      マッピング関数によって配置されたクラス・ファイルからクラス階層情報を抽出するClassHierarchyResolverPREVIEWを返します。 マッピング関数は、クラス・ファイルにマッピングを提供できない場合、nullを返す必要があります。 指定された入力ストリームからのIOExceptionは、UncheckedIOExceptionとして再スローされます。
      パラメータ:
      classStreamResolver - クラス記述子をクラス・ファイル入力ストリームにマップします。
      戻り値:
      the ClassHierarchyResolverPREVIEW
    • ofResourceParsing

      static ClassHierarchyResolverPREVIEW ofResourceParsing(ClassLoader loader)
      クラス・ローダーによって配置されたクラス・ファイルからクラス階層情報を抽出するClassHierarchyResolverPREVIEWを返します。
      パラメータ:
      loader - クラス・ローダー、クラス・ファイルの検索
      戻り値:
      the ClassHierarchyResolverPREVIEW
    • of

      static ClassHierarchyResolverPREVIEW of(Collection<ClassDesc> interfaces, Map<ClassDesc,ClassDesc> classToSuperClass)
      クラス階層メタデータのコレクションからクラス階層情報を抽出するClassHierarchyResolverPREVIEWを返します
      パラメータ:
      interfaces - インタフェースと認識されるクラスの集合
      classToSuperClass - クラスからスーパークラスへのマップ
      戻り値:
      the ClassHierarchyResolverPREVIEW
    • ofClassLoading

      static ClassHierarchyResolverPREVIEW ofClassLoading(ClassLoader loader)
      ClassLoaderを使用してReflection APIを介してクラス階層情報を抽出するClassHierarchyResolverを返します。
      パラメータ:
      loader - クラス・ローダー
      戻り値:
      クラス階層リゾルバ
    • ofClassLoading

      static ClassHierarchyResolverPREVIEW ofClassLoading(MethodHandles.Lookup lookup)
      Lookupを使用してReflection APIを介してクラス階層情報を抽出するClassHierarchyResolverを返します。 解決されたクラスが指定されたルックアップにアクセスできない場合、nullを返すのではなく、IllegalArgumentExceptionがスローされます。
      パラメータ:
      lookup - ルックアップ、解決するクラスにアクセスできる必要があります。
      戻り値:
      クラス階層リゾルバ