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

クラスBeansLinker

java.lang.Object
jdk.dynalink.beans.BeansLinker
すべての実装されたインタフェース:
GuardingDynamicLinker

public class BeansLinker extends Object implements GuardingDynamicLinker
通常のJavaオブジェクトのリンカー。 通常、DynamicLinkerFactoryによる最終的なフォールバック・リンカーとして使用されるため、ほかのリンカーが認識していないすべてのオブジェクトへの呼び出しをリンクする機会が与えられます。 具体的には、このリンカーは次のことを行います:
  • オブジェクトがrecordの場合は、StandardNamespace.PROPERTYネームスペース内のStandardOperation.GET操作のプロパティgetterとして、レコード・コンポーネントのすべてのパブリック・アクセサを公開
  • StandardNamespace.PROPERTYネームスペースのStandardOperation.SETおよびStandardOperation.GET操作に対するプロパティ・セッターおよびgetterとして、setXxx()getXxx()およびisXxx()形式のパブリック・メソッドをすべて公開します。ただし、レコード・コンポーネントgetterによってすでに処理されている名前のgetterを除きます
  • StandardNamespace.METHOD名前空間でStandardOperation.GET操作の検索のためのすべての公開メソッドを公開します。StandardOperation.CALLを使用して検索されたメソッドを呼び出すことができます。
  • 同じ名前のプロパティにゲッターまたはセッターがないかぎり、すべてのパブリック・フィールドをプロパティとして公開
  • ネイティブJava配列、ListおよびMapオブジェクトの要素を、StandardNamespace.ELEMENTネームスペース内のStandardOperation.GETおよびStandardOperation.SET操作として公開
  • ListMapオブジェクトの要素の削除をStandardNamespace.ELEMENT名前空間のStandardOperation.REMOVE操作として公開
  • lengthという名前の仮想プロパティを、Java配列、CollectionおよびMapオブジェクトで公開
  • StaticClassのインスタンスに対して、Java配列(それらのコンストラクタは作成する配列の長さを表す単一のintパラメータをとります)を表す静的クラス・オブジェクトを含め、コンストラクタへのコールとしてStandardOperation.NEWを公開
  • StaticClassオブジェクトで、インスタンス・メソッド、フィールドおよびプロパティの公開方法と同様の方法で、クラスの静的メソッド、フィールドおよびプロパティを公開します。
  • Classのインスタンスにstaticという名前の仮想プロパティを公開し、StaticClassにアクセスします。

「オーバーロードされたメソッドの解決」は、プロパティ・セッター、メソッドおよびコンストラクタに対して自動的に実行されます。 また、手動でのオーバーロード・メソッドの選択は、明示的なシグネチャを含むメソッドの名前をコール・サイトで指定することでサポートされます(例: StandardOperation.GET.withNamespace(METHOD).named("parseInt(String,int)"))。このようなシグネチャでは、これらのクラスのパッケージに関係なく、非修飾クラス名を使用できます。これらは、同じ非修飾名を持つクラスに一致します。 修飾されていないクラス名によって選択のあいまいさが発生する場合は、完全修飾クラス名を使用する必要があります。(それは非常にまれです)。 コンストラクタのオーバーロードされた解決は、その機能をアタッチする論理的な場所がないため自動的ではありませんが、言語がこの機能を提供することを希望する場合は、getConstructorMethod(Class, String)を便利な構成要素として使用できます。

「可変引数呼び出し」は、メソッドとコンストラクタの両方に対して処理されます。

「コーラー・センシティブなメソッド」は、パブリックであり、リンク・リクエストに完全な強さのMethodHandles.Lookupオブジェクトを持つコール・サイト記述子があり、ルックアップやパブリック・ルックアップが弱まっていないかぎりリンクできます。

「不足しているメンバーを処理するための動作」は、MissingMemberHandlerFactoryconstructorに渡すことでカスタマイズできます。

このクラスは、クラスおよびクラス・インスタンスで使用可能なプロパティおよびメソッド名を検出するための様々なメソッド、およびgetLinkerForClass(Class)メソッドを使用したクラスごとのリンカーへのアクセスも公開します。

導入されたバージョン:
9