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

クラスStaticClass

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引数をとり、指定されたサイズの配列を作成するコンストラクタとして機能します。

クラスに複数のコンストラクタがある場合、StaticClassStandardOperation.NEWは、最も具体的な適用可能なコンストラクタを選択しようとします。 BeansLinker.getConstructorMethod(Class, String)を使用して明示的なシグネチャを持つコンストラクタを選択するために、あなたの言語でメカニズムを公開することができます。

関連項目:
直列化された形式
  • メソッドの詳細

    • forClass

      public static StaticClass forClass(Class<?> clazz)
      指定されたクラスのStaticClassインスタンスを取得します。
      パラメータ:
      clazz - 静的ファセットがリクエストされるクラス。
      戻り値:
      指定されたクラスを表すStaticClassインスタンス。
    • getRepresentedClass

      public Class<?> getRepresentedClass()
      表現されたJavaクラスを返します。
      戻り値:
      表現されたJavaクラス。