- 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の場合と同様にJavaのClass
オブジェクトを返します。System.class
は、SystemクラスのClass
オブジェクトを評価します。 逆に、BeansLinker
を介して公開されたClass
オブジェクトは、StaticClass
オブジェクト(Javaにこれと同等のものはありません)を返す"static"
合成プロパティを公開します。要約すると、このクラスのインスタンスは、静的メンバーのネームスペースおよびクラスのコンストラクタとして機能します。Java言語ではクラス名を指定するのと同じように動作しますが、これはJavaでは構文要素に過ぎず、Dynalinkでは表現されます実際のオブジェクトとして。
Java配列型を表す
StaticClass
オブジェクトは、単一のint引数をとり、指定されたサイズの配列を作成するコンストラクタとして機能します。クラスに複数のコンストラクタがある場合、
StaticClass
のStandardOperation.NEW
は、最も具体的な適用可能なコンストラクタを選択しようとします。BeansLinker.getConstructorMethod(Class, String)
を使用して明示的なシグネチャを持つコンストラクタを選択するために、あなたの言語でメカニズムを公開することができます。- 関連項目:
- 直列化された形式
-
-
メソッドのサマリー
すべてのメソッド 静的メソッド インスタンス・メソッド 具象メソッド 修飾子と型 メソッド 説明 static StaticClass
forClass(Class<?> clazz)
指定されたクラスのStaticClass
インスタンスを取得します。Class<?>
getRepresentedClass()
表現されたJavaクラスを返します。
-
-
-
メソッドの詳細
-
forClass
public static StaticClass forClass(Class<?> clazz)
指定されたクラスのStaticClass
インスタンスを取得します。- パラメータ:
clazz
- 静的ファセットがリクエストされるクラス。- 戻り値:
- 指定されたクラスを表す
StaticClass
インスタンス。
-
getRepresentedClass
public Class<?> getRepresentedClass()
表現されたJavaクラスを返します。- 戻り値:
- 表現されたJavaクラス。
-
-