- 関数型インタフェース:
- これは関数型インタフェースなので、ラムダ式またはメソッド参照の代入先として使用できます。
@FunctionalInterface public interface ClassHierarchyResolver
ClassHierarchyResolver
は、JavaプラットフォームのプレビューAPIです。
プレビュー機能は、今後のリリースで削除するか、Javaプラットフォームの永続機能にアップグレードすることができます。
コード構築中に正しいスタック・マップを生成するためのクラス階層情報を提供します。
- 導入されたバージョン:
- 22
-
ネストされたクラスのサマリー
修飾子と型インタフェース説明static interface
Preview.解決済みクラスに関する情報。 -
メソッドのサマリー
修飾子と型メソッド説明default ClassHierarchyResolverPREVIEW
cached()
このリゾルバからクラス階層情報をキャッシュするClassHierarchyResolverを返します。default ClassHierarchyResolverPREVIEW
このリゾルバからクラス階層情報をキャッシュするClassHierarchyResolverを返します。リフレクションを使用してシステム・クラス・ローダーからClassHierarchyResolver.ClassHierarchyInfo
PREVIEWを取得するClassHierarchyResolverPREVIEWのデフォルト・インスタンスを返します。getClassInfo
(ClassDesc classDesc) 指定されたクラス名のClassHierarchyResolver.ClassHierarchyInfo
PREVIEWを返します。リゾルバで名前が不明な場合はnullを返します。クラス階層メタデータのコレクションからクラス階層情報を抽出するClassHierarchyResolverPREVIEWを返しますofClassLoading
(ClassLoader loader) ClassLoaderを使用してReflection APIを介してクラス階層情報を抽出するClassHierarchyResolverを返します。ofClassLoading
(MethodHandles.Lookup lookup) Lookupを使用してReflection APIを介してクラス階層情報を抽出するClassHierarchyResolverを返します。ofResourceParsing
(ClassLoader loader) クラス・ローダーによって配置されたクラス・ファイルからクラス階層情報を抽出するClassHierarchyResolverPREVIEWを返します。ofResourceParsing
(Function<ClassDesc, InputStream> classStreamResolver) マッピング関数によって配置されたクラス・ファイルからクラス階層情報を抽出するClassHierarchyResolverPREVIEWを返します。default ClassHierarchyResolverPREVIEW
このClassHierarchyResolverPREVIEWを、指定されたクラスについてこのリゾルバが認識していない場合に参照する別のClassHierarchyResolverPREVIEWと連鎖します。
-
メソッドの詳細
-
defaultResolver
static ClassHierarchyResolverPREVIEW defaultResolver()リフレクションを使用してシステム・クラス・ローダーからClassHierarchyResolver.ClassHierarchyInfo
PREVIEWを取得するClassHierarchyResolverPREVIEWのデフォルト・インスタンスを返します。- 戻り値:
- リフレクションを使用してシステム・クラス・ローダーから
ClassHierarchyResolver.ClassHierarchyInfo
PREVIEWを取得するClassHierarchyResolverPREVIEWのデフォルト・インスタンス
-
getClassInfo
ClassHierarchyResolver.ClassHierarchyInfoPREVIEW getClassInfo(ClassDesc classDesc) 指定されたクラス名のClassHierarchyResolver.ClassHierarchyInfo
PREVIEWを返します。リゾルバで名前が不明な場合はnullを返します。- パラメータ:
classDesc
- クラスの記述子- 戻り値:
- 指定されたクラス名の
ClassHierarchyResolver.ClassHierarchyInfo
PREVIEW、またはリゾルバで名前が不明な場合はnull - 例外:
IllegalArgumentException
- クラスを階層に問い合せるべきでない場合
-
orElse
default ClassHierarchyResolverPREVIEW orElse(ClassHierarchyResolverPREVIEW other) このClassHierarchyResolverPREVIEWを、指定されたクラスについてこのリゾルバが認識していない場合に参照する別のClassHierarchyResolverPREVIEWと連鎖します。- 実装要件:
- デフォルトの実装では、このリゾルバが
null
を返す場合に、他のリゾルバに問い合せるために実装されたリゾルバが返されます。 - パラメータ:
other
- 他のリゾルバ- 戻り値:
- 連鎖リゾルバ
-
cached
default ClassHierarchyResolverPREVIEW cached(Supplier<Map<ClassDesc, ClassHierarchyResolver.ClassHierarchyInfoPREVIEW>> cacheFactory) このリゾルバからクラス階層情報をキャッシュするClassHierarchyResolverを返します。 委任リゾルバが別の方法で返された場合、返されたリゾルバは更新されません。 返されるリゾルバのスレッド・セーフティは、cacheFactory
によって返されるマップのスレッド・セーフティに依存します。- 実装要件:
- デフォルトの実装では、
cacheFactory
によって提供されるキャッシュ・マップのインスタンスを保持するリゾルバが返されます。 キャッシュ・マップは常に最初に要求され、キャッシュ・マップにすべての解決済および未解決のクラス情報が入力されます。 キャッシュ・マップは、null
キーおよび値を拒否する場合があります。 - パラメータ:
cacheFactory
- キャッシュのファクトリ- 戻り値:
- キャッシュを使用したClassHierarchyResolver
-
cached
default ClassHierarchyResolverPREVIEW 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
- ルックアップ、解決するクラスにアクセスできる必要があります。- 戻り値:
- クラス階層リゾルバ
-
ClassHierarchyResolver
を使用できます。