java.lang.Object
jdk.dynalink.beans.StaticClass
- すべての実装されたインタフェース:
Serializable
public final class StaticClass extends Object implements Serializable
(静的メソッド、プロパティおよびフィールド)クラスの静的メンバーへのアクセス、および
StandardOperation.NEW
操作を使用したインスタンスの構成を許可するオブジェクト。 Dynalinkでは、Class
オブジェクトは特別に扱われず、通常のJavaオブジェクトとして動作します。たとえば、GET:PROPERTY:superclass
をプロパティ・ゲッターとして使用して、clazz.getSuperclass()
を呼び出すことができます。 一方、Class
オブジェクトを使用してクラスの静的メンバーにアクセスしたり、NEW
を使用してクラスの新しいインスタンスを作成することはできません。 これは、Class
オブジェクトがJavaでどのように動作するかと一貫しています: Javaでは、new BitSet.class()
のかわりにnew BitSet()
などを記述します。 同様に、System.class.out
ではなくSystem.out
を記述します。 この側面は、クラス名をコンストラクタとして使用し、StaticClass
が具体化する静的メンバーのネームスペースを使用することです。
このクラスのオブジェクトは、BeansLinker
によって特別なものとして認識され、それらのオブジェクトに対する操作は、表現されたクラスの静的メンバーに対してリンクされます。 "class"
合成プロパティは、さらに認識され、Java System.class
がSystemクラスのClass
オブジェクトと評価した場合と同様に、Java Class
オブジェクトを返します。 逆に、BeansLinker
を介して公開されるClass
オブジェクトは、StaticClass
オブジェクト(Javaにこれと同等のものはありません)を返す"static"
合成プロパティを公開します。
要約すると、このクラスのインスタンスは静的メンバーのネームスペースとして機能し、クラスのコンストラクタとしても、Java言語でクラス名を指定するのとほぼ同じように機能します。ただし、Javaではこれは単なる構文要素ですが、Dynalinkでは実際のオブジェクトとして表現されます。
Java配列型を表すStaticClass
オブジェクトは、単一のint引数をとるコンストラクタとして機能し、指定されたサイズの配列を作成します。
クラスに複数のコンストラクタがある場合、StaticClass
のStandardOperation.NEW
は、適用可能な最も具体的なコンストラクタの選択を試みます。 BeansLinker.getConstructorMethod(Class, String)
を使用して明示的なシグネチャを持つコンストラクタを選択するために、あなたの言語でメカニズムを公開することができます。
- 関連項目:
-
メソッドのサマリー
-
メソッドの詳細
-
forClass
public static StaticClass forClass(Class<?> clazz) 指定されたクラスのStaticClass
インスタンスを取得します。- パラメータ:
clazz
- 静的ファセットがリクエストされるクラス。- 戻り値:
- 指定されたクラスを表す
StaticClass
インスタンス。
-
getRepresentedClass
public Class<?> getRepresentedClass()表されたJavaクラスを返します。- 戻り値:
- 表されるJavaクラス。
-