Spec-Zone.ru › OpenJDK 25

Класс 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).

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

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

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

Методы, объявленные в классе 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.

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторское право © 1993, 2025, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, 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/25/docs/api/jdk.dynalink/jdk/dynalink/beans/StaticClass.html

Spec-Zone.ru

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