- 関数型インタフェース:
- これは関数型インタフェースなので、ラムダ式またはメソッド参照の代入先として使用できます。
@FunctionalInterface public interface MissingMemberHandlerFactory
BeansLinker
で不足しているメンバーの動作をリンクするためのメソッド・ハンドルを作成するためのファクトリです。 BeansLinkerは、リクエストされたメンバー(プロパティ、メソッド、または要素)が不足している可能性があるか、または可能性がある場合に、GET_*
およびSET_*
StandardOperation
を指定するリンク・リクエストに対して、これらのメソッド・ハンドルをガードされた呼び出しにリンクします。 named
と名前のない操作の両方にリンクされます。 実装者は、返されたメソッド・ハンドルのパラメータ型が、リンク・リクエストで記述されている呼び出しサイトのパラメータ型と一致していることを確認する必要があります。 ただし、戻り値の型は、DynamicLinkerFactory.setPrelinkTransformer(jdk.dynalink.linker.GuardedInvocationTransformer)
の遅延戻り型変換を可能にするために異なる場合があります)。 デフォルトの動作で十分なら、メソッド・ハンドルのnull
を返すことができます。
既定のメンバーの不在動作
BeansLinker
がメンバー・ハンドラ・ファクトリが欠落して構成されていないか、または特定のハンドラ作成呼び出しのためにファクトリがnull
を戻す場合、デフォルトの動作が使用されます。 デフォルトの動作では、リンク時にリンクされた操作が既存のメンバーに対処しないと判断できる場合に、null
をGuardingDynamicLinker.getGuardedInvocation(LinkRequest, LinkerServices)
から戻すことです。 これにより、DynamicLinker
は、次のリンカーがあればそれを試みるか、最終的にNoSuchDynamicMethodException
でリンク・リクエストに失敗します。 その他の場合、(通常はすべての名前のないメンバー操作だけでなく、コレクション要素のほとんどの名前付き操作) BeansLinker
は、実行時にgetterのメンバーと一致しない名前でnull
が呼び出されたときにnull
を返し、渡されたsetterの値を黙って無視する条件付きリンケージを生成します。
例外スローイング・ビヘイビアの実装
不足しているメンバーの操作の言語固有の動作が例外をスローすることである場合、ファクトリは、呼び出されたときに例外をスローするメソッド・ハンドルを生成しなければならず、不足しているメンバーのリンケージとして例外自体をスローしてはならない条件付きであることが多い。-
メソッドのサマリー
修飾子と型 メソッド 説明 MethodHandle
createMissingMemberHandler(LinkRequest linkRequest, LinkerServices linkerServices)
特定のリンク・リクエストに対する不足しているメンバーの動作を実装するのに適したメソッド・ハンドルを返します。
-
メソッドの詳細
-
createMissingMemberHandler
MethodHandle createMissingMemberHandler(LinkRequest linkRequest, LinkerServices linkerServices) throws Exception特定のリンク・リクエストに対する不足しているメンバーの動作を実装するのに適したメソッド・ハンドルを返します。 詳細については、クラスの説明を参照してください。- パラメータ:
linkRequest
- 現在のリンク・リクエストlinkerServices
- 現在のリンク・サービス- 戻り値:
- 操作によってアドレス指定されているプロパティ、要素、またはメソッドが見つからない場合に呼び出されるメソッド・ハンドル。 戻り値はnullの場合があります。
- 例外:
Exception
- 何らかの理由で操作が失敗した場合。 例外スローのメンバーの動作を実装するためのクラスのドキュメントの注意事項を守ってください。
-