- java.lang.Object
-
- jdk.dynalink.beans.StaticClass
-
- All Implemented Interfaces:
-
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()
而不是new BitSet.class()
。 同样,你写System.out
而不是System.class.out
。 使用类名作为构造函数的这个方面是一个StaticClass
体现的静态成员的命名空间。这个类的对象被
BeansLinker
识别为特殊的,对它们的操作将与代表的类的静态成员相关联。"class"
合成属性另外被识别并返回JavaClass
对象,就像JavaSystem.class
评估为系统类的Class
对象一样。 相反,通过BeansLinker
暴露的Class
对象暴露"static"
合成属性,返回其StaticClass
对象(在Java中没有相当于此)。总而言之,该类的实例作为静态成员和类作为构造函数的命名空间,与Java语言中指定类名称的方式大致相同,只是在Java中这只是一个句法元素,而在Dynalink中它们被表达作为实际物体。
表示Java数组类型的对象的
StaticClass
将作为构造函数采用单个int参数并创建一个指定大小的数组。如果该类有几个构造函数, 则
StaticClass
将在StaticClass
尝试选择最具体的适用构造函数。 您可能希望以您的语言公开一种机制,以通过BeansLinker.getConstructorMethod(Class, String)
选择具有明确签名的构造函数 。- 另请参见:
- Serialized Form
-
-
方法摘要
所有方法 静态方法 接口方法 具体的方法 Modifier and Type 方法 描述 static StaticClass
forClass(Class<?> clazz)
检索指定类的StaticClass
实例。Class<?>
getRepresentedClass()
返回表示的Java类。String
toString()
返回对象的字符串表示形式。
-
-
-
方法详细信息
-
forClass
public static StaticClass forClass(Class<?> clazz)
检索指定类的StaticClass
实例。- 参数
-
clazz
- 请求静态方面的类。 - 结果
-
表示指定类的
StaticClass
实例。
-
getRepresentedClass
public Class<?> getRepresentedClass()
返回表示的Java类。- 结果
- 代表Java类。
-
toString
public String toString()
说明从类别复制:Object
返回对象的字符串表示形式。 一般情况下,toString
方法返回一个“toString
代表”这个对象的字符串。 结果应该是一个简明扼要的表达,容易让人阅读。 建议所有子类覆盖此方法。该
toString
类方法Object
返回一个由类的名称,其中所述对象是其实例,该符号字符`的字符串@
”,并且对象的哈希码的无符号的十六进制表示。 换句话说,这个方法返回一个等于下列值的字符串:getClass().getName() + '@' + Integer.toHexString(hashCode())
-
-