Spec-Zone.ru › OpenJDK 24

Класс 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-массивов, будут действовать как конструкторы, принимающие один целочисленный аргумент, и создавать массив заданного размера.

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

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

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

Модификатор и тип Метод Описание
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, 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://download.java.net/java/early_access/jdk24/docs/api/jdk.dynalink/jdk/dynalink/beans/StaticClass.html

Spec-Zone.ru

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