モジュール jdk.dynalink
パッケージ jdk.dynalink.beans

インタフェースMissingMemberHandlerFactory

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

@FunctionalInterface public interface MissingMemberHandlerFactory
BeansLinkerで不足しているメンバーの動作をリンクするためのメソッド・ハンドルを作成するためのファクトリです。 BeansLinkerは、GET_*およびSET_* StandardOperationを指定するリンク・リクエストのガード付き呼出しにこれらのメソッド・ハンドルをリンクします(リクエストされたメンバー(プロパティ、メソッドまたは要素)が欠落していることが確実であるか、または可能な場合)。 これらは、named操作と名前なし操作の両方にリンクされます。 実装者は、返されたメソッド・ハンドルのパラメータ・タイプが、リンク・リクエストで説明されているコール・サイトのパラメータ・タイプと一致することを確認する必要があります。 ただし、戻り型は、DynamicLinkerFactory.setPrelinkTransformer(jdk.dynalink.linker.GuardedInvocationTransformer)の遅延戻り型変換を可能にするために異なる場合があります。 デフォルトの動作で十分な場合は、メソッド・ハンドルに対してnullを戻すことができます。

既定のメンバーの不在動作

欠落しているメンバー・ハンドラ・ファクトリなしでBeansLinkerが構成されている場合、またはファクトリが特定のハンドラ作成呼出しに対してnullを返す場合、デフォルトの動作が使用されます。 デフォルトの動作では、リンク時にリンクされた操作が既存のメンバーに対処しないと判断できる場合に、nullBeansLinker.getGuardedInvocation(LinkRequest, LinkerServices)から戻すことです。 これにより、DynamicLinkerは、次のリンカーが存在する場合、または最終的にNoSuchDynamicMethodExceptionでリンク・リクエストに失敗した場合に、次のリンカーを試行できます。 その他の場合、(通常はすべての名前のないメンバー操作だけでなく、コレクション要素のほとんどの名前付き操作) BeansLinkerは、実行時にgetterのメンバーと一致しない名前で呼び出されたときにnullを返す条件付きリンケージを生成し、setterの渡された値を暗黙的に無視します。

動作の例外スローの実装

欠落しているメンバーに対する操作の言語固有の動作が例外をスローする場合、ファクトリは、起動時に例外をスローするメソッド・ハンドルを生成し、欠落しているメンバーのリンケージは条件付きであることが多いため、例外自体をスローしないでください。
導入されたバージョン:
9
関連項目: