- 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 StaticClassforClass(Class<?> clazz)指定されたクラスのStaticClassインスタンスを取得します。Class<?>getRepresentedClass()表現されたJavaクラスを返します。StringtoString()オブジェクトの文字列表現を返します。
-
-
-
メソッドの詳細
-
forClass
public static StaticClass forClass(Class<?> clazz)
指定されたクラスのStaticClassインスタンスを取得します。- パラメータ:
clazz- 静的ファセットがリクエストされるクラス。- 戻り値:
- 指定されたクラスを表す
StaticClassインスタンス。
-
getRepresentedClass
public Class<?> getRepresentedClass()
表現されたJavaクラスを返します。- 戻り値:
- 表現されたJavaクラス。
-
toString
public String toString()
次のクラスからコピーされた説明:Objectオブジェクトの文字列表現を返します。 一般に、toStringメソッドは、このオブジェクトをテキストで表す文字列を返します。 この結果は、人間が読める簡潔で有益な情報であるべきです。 すべてのサブクラスで、このメソッドをオーバーライドすることをお勧めします。クラス
ObjectのtoStringメソッドは、オブジェクトがインスタンスになっている元のクラスの名前、アットマーク文字@、およびオブジェクトのハッシュ・コードの符号なし16進数表現から構成される文字列を返します。 つまり、このメソッドは次の値と等しい文字列を返します。getClass().getName() + '@' + Integer.toHexString(hashCode())
-
-