Класс 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 |
Возвращает экземпляр StaticClass для указанного класса. |
Class |
getRepresentedClass() |
Возвращает представленный класс Java. |
Методы, объявленные в классе Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создаёт и возвращает копию этого объекта. |
boolean |
equals |
Указывает, равен ли другой объект этому объекту. |
protected void |
finalize() |
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии. Финализация объявлена устаревшей и будет удалена в одном из будущих выпусков. |
final Class |
getClass() |
Возвращает класс времени выполнения этого Object. |
int |
hashCode() |
Возвращает хеш-код этого объекта. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
String |
toString() |
Возвращает строковое представление объекта. |
final void |
wait() |
Приостанавливает текущий поток до его пробуждения, обычно посредством уведомления или прерывания. |
final void |
wait |
Приостанавливает текущий поток до его пробуждения, обычно посредством уведомления или прерывания, либо до истечения определённого промежутка реального времени. |
final void |
wait |
Приостанавливает текущий поток до его пробуждения, обычно посредством уведомления или прерывания, либо до истечения определённого промежутка реального времени. |
Подробное описание методов
forClass
public static StaticClass forClass(Class<?> clazz)
StaticClass для указанного класса.- Параметры:
-
clazz— класс, для которого запрашивается статическая составляющая. - Возвращает:
- экземпляр
StaticClass, представляющий указанный класс.
getRepresentedClass
public Class<?> getRepresentedClass()
- Возвращает:
- представленный класс 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.