- 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を使用してクラスの新規インスタンスを作成したりすることはできません。 これは、JavaでのClassオブジェクトの動作と一貫性があります。Javaでは、new BitSet.class()ではなくnew BitSet()のように記述します。 同様に、System.class.outではなくSystem.outを記述します。 これは、クラス名をコンストラクタとして使用し、StaticClassによって具体化される静的メンバーの名前空間を使用する側面です。このクラスのオブジェクトは、
BeansLinkerによって特別なオブジェクトとして認識され、そのオブジェクトの操作は、表されるクラスの静的メンバーに対してリンクされます。"class"合成プロパティが追加で認識され、JavaSystem.classがSystemクラスのClassオブジェクトに評価されるのと同様に、JavaClassオブジェクトが戻されます。 逆に、BeansLinkerを介して公開されるClassオブジェクトは、StaticClassオブジェクトを返す"static"合成プロパティを公開します(Javaではこれに相当するものはありません)。要約すると、このクラスのインスタンスは、静的メンバーの名前空間として機能し、クラスのコンストラクタとして機能します。これは、Java言語でクラス名を指定する場合とほぼ同じです。ただし、Javaではこれは単なる構文要素であり、Dynalinkでは実際のオブジェクトとして表されます。
Java配列型を表す
StaticClassオブジェクトは、単一のint引数をとるコンストラクタとして機能し、指定されたサイズの配列を作成します。クラスに複数のコンストラクタがある場合、
StaticClassのStandardOperation.NEWは最も適用可能なコンストラクタを選択しようとします。BeansLinker.getConstructorMethod(Class, String)を介して明示的な署名を持つコンストラクタを選択するためのメカニズムを言語で公開できます。- 関連項目:
- 直列化された形式
-
-
メソッドのサマリー
すべてのメソッド 静的メソッド インスタンス・メソッド 具象メソッド 修飾子と型 メソッド 説明 static StaticClassforClass(Class<?> clazz)指定されたクラスのStaticClassインスタンスを取得します。Class<?>getRepresentedClass()表されるJavaクラスを返します。
-
-
-
メソッドの詳細
-
forClass
public static StaticClass forClass(Class<?> clazz)
指定されたクラスのStaticClassインスタンスを取得します。- パラメータ:
clazz- 静的ファセットがリクエストされるクラス。- 戻り値:
- 指定されたクラスを表す
StaticClassインスタンス。
-
getRepresentedClass
public Class<?> getRepresentedClass()
表されるJavaクラスを返します。- 戻り値:
- 表されるJavaクラス。
-
-