Spec-Zone.ru › OpenJDK 21

Класс 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() вместо new BitSet.class(). Аналогично, вы пишете System.out а не System.class.out. Именно эта сторона использования имени класса в качестве конструктора и пространства имен для статических членов воплощена в StaticClass.

Объекты этого класса распознаются BeansLinker как особые, и операции над ними будут связаны со статическими членами представляемого класса. Дополнительно распознается синтетическое свойство "class" и возвращает объект Java Class, так же, как в Java System.class возвращает объект Class для класса System. Напротив, объекты Class, экспонируемые через BeansLinker, экспонируют синтетическое свойство "static", которое возвращает их объект StaticClass (аналога этому в Java нет).

В общем, экземпляры этого класса действуют как пространства имен для статических членов и как конструкторы для классов, так же, как указание имени класса на языке Java, за исключением того, что в Java это всего лишь синтаксический элемент, а в Dynalink они представлены как фактические объекты.

Объекты StaticClass, представляющие типы массивов Java, будут действовать как конструкторы, принимающие один аргумент типа int и создающие массив указанного размера.

Если у класса несколько конструкторов, то операция StandardOperation.NEW над StaticClass попытается выбрать наиболее подходящий конструктор. Возможно, вам понадобится механизм в вашем языке для выбора конструктора с явным сигнатуром через BeansLinker.getConstructorMethod(Class, String).

См. также:
  • Сериализованная форма

Краткое описание методов

Модификатор и тип Метод Описание
static StaticClass forClass(Class<?> clazz)
Возвращает экземпляр StaticClass для указанного класса.
Class<?> getRepresentedClass()
Возвращает представленный класс Java.

Методы, унаследованные от класса java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Подробное описание методов

forClass

public static StaticClass forClass(Class<?> clazz)
Возвращает экземпляр StaticClass для указанного класса.
Параметры:
clazz - класс, для которого запрашивается статический фрагмент.
Возвращает:
экземпляр StaticClass, представляющий указанный класс.

getRepresentedClass

public Class<?> getRepresentedClass()
Возвращает представленный класс Java.
Возвращает:
представленный класс Java.

© 1993, 2023, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/21/docs/api/jdk.dynalink/jdk/dynalink/beans/StaticClass.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API