- java.lang.Object
-
- jdk.dynalink.beans.StaticClass
-
- 实现的所有接口
-
Serializable
public final class StaticClass extends Object implements Serializable
允许访问类的静态成员(其静态方法,属性和字段)以及使用StandardOperation.NEW
操作构造实例的对象 。 在Dynalink中,类
对象未被特殊处理并充当普通的Java对象; 您可以使用例如GET:PROPERTY:superclass
作为属性getter来调用clazz.getSuperclass()
。 在另一方面,你不能使用类
对象访问类的静态成员,也不是为了创建一个使用类的新实例NEW
。 这与类
对象在Java中的行为方式一致:在Java中,您编写例如new BitSet()
而不是new BitSet.class()
。 同样,你写System.out
而不是System.class.out
。 这是使用类名作为构造函数和StaticClass
体现的静态成员的命名空间的这一方面。BeansLinker
将此类的对象识别为特殊对象,对它们的操作将与所表示的类的静态成员链接。 另外识别"class"
合成属性并返回Java类
对象,就像在JavaSystem.class
评估System类的类
对象一样。 相反,通过BeansLinker
公开的类
个对象公开"static"
合成属性,该属性返回其StaticClass
对象(Java中没有相应的对象)。总之,这个类的实例充当静态成员的名称空间和类的构造函数,就像在Java语言中指定类名一样,除了在Java中这只是一个语法元素,而在Dynalink中它们被表达作为实际对象。
表示Java数组类型的
StaticClass
对象将充当构造函数,采用单个int参数并创建指定大小的数组。如果该类有多个构造函数, 5199287653827上的
StaticClass
将尝试选择最具体的适用构造函数。 您可能希望使用您的语言公开一种机制,以通过BeansLinker.getConstructorMethod(Class, String)
选择具有显式签名的构造函数 。- 另请参见:
- Serialized Form
-
-
方法详细信息
-
forClass
public static StaticClass forClass(类<?> clazz)
检索指定类的StaticClass
实例。- 参数
-
clazz
- 请求静态构面的类。 - 结果
-
表示指定类的
StaticClass
实例。
-
getRepresentedClass
public 类<?> getRepresentedClass()
返回表示的Java类。- 结果
- 代表的Java类。
-
-