Spec-Zone.ru › OpenJDK 17

Класс 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, 2021, 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/17/docs/api/jdk.dynalink/jdk/dynalink/beans/StaticClass.html

Spec-Zone.ru

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