Spec-Zone.ru › OpenJDK 24

Пакет java.lang.reflect

package java.lang.reflect
Предоставляет классы и интерфейсы для получения рефлексивной информации о классах и объектах. Рефлексия позволяет программно получить информацию о полях, методах и конструкторах загруженных классов, а также использовать отражённые поля, методы и конструкторы для работы с их базовыми аналогами в рамках ограничений по защите и инкапсуляции.

Классы в этом пакете, наряду с java.lang.Class, поддерживают приложения, такие как отладчики, интерпретаторы, инспекторы объектов, обозреватели классов и такие сервисы, как сериализация объектов и JavaBeans, которым необходим доступ к общедоступным членам целевого объекта (на основе его класса во время выполнения) или к членам, объявленным данным классом.

Array предоставляет статические методы для динамического создания и доступа к массивам.

Моделирование языка программирования Java и JVM в ядре рефлексии

Компоненты ядра рефлексии, которые включают типы в этом пакете, а также Class, Package и Module, в основе своей представляют модель JVM рассматриваемых сущностей, а не модель языка программирования Java. Компилятор Java, такой как javac, преобразует исходный код Java в исполняемый вывод, который может быть запущен в JVM, в основном в файлах class. Компиляторы для языков исходного кода, отличных от Java, также могут и нацеливаются на JVM.

Процесс преобразования, включая преобразование из исходного кода Java в исполняемый вывод для JVM, не является однозначным соответствием. Структуры, присутствующие в языке исходного кода, могут отсутствовать в выводе, и структуры, отсутствующие в языке исходного кода, могут присутствовать в выводе. Последние называются синтетическими структурами. Синтетические структуры могут включать методы, поля, параметры, классы и интерфейсы. Один из конкретных видов синтетического метода — метод-мост. Возможно, что синтетическая структура не будет помечена как таковая. В частности, не все версии файлов class поддерживают пометку параметра как синтетический. Компилятор языка исходного кода, как правило, имеет несколько способов перевода исходной программы в представление файла class. Перевод также может зависеть от версии формата файла class, на который нацелено целевое представление, так как разные версии файлов class имеют разные возможности и функции. В некоторых случаях модификаторы, присутствующие в представлении файла class, могут отличаться от модификаторов исходного элемента в языке исходного кода, включая final для параметра и protected, private и static для классов и интерфейсов.

Помимо различий в представлении структур между языком исходного кода и представлением JVM, ядро рефлексии также предоставляет информацию, специфичную для выполнения. Например, загрузчики классов и домены защиты Class являются понятиями, специфичными для выполнения, без непосредственного аналога в исходном коде.

См. Спецификацию языка Java:
13.1 Форма двоичного файла
См. Спецификацию виртуальной машины Java:
1.2 Виртуальная машина Java
4.7.8 Атрибут synthetic
5.3.1 Загрузка с использованием загрузчика Bootstrap
5.3.2 Загрузка с использованием пользовательского загрузчика классов
С:
1.1
Пакет Описание
java.lang
Предоставляет классы, фундаментальные для разработки на языке программирования Java.
Класс Описание
AccessFlag
Представляет флаг доступа JVM или модуля к члену во время выполнения, такому как класс, поле или метод.
AccessFlag.Location
Местоположение в файле класса, где можно применить флаги.
AccessibleObject
Класс AccessibleObject — базовый класс для объектов Field, Method и Constructor (известных как отражённые объекты).
AnnotatedArrayType
AnnotatedArrayType представляет потенциально аннотированный тип массива, тип компонентов которого может сам по себе представлять аннотированный тип.
AnnotatedElement
Представляет аннотированный фрагмент программы, выполняемой в данной виртуальной машине.
AnnotatedParameterizedType
AnnotatedParameterizedType представляет потенциально аннотированный параметризованный тип, аргументы типов которого могут сами представлять аннотированные типы.
AnnotatedType
AnnotatedType представляет потенциально аннотированный тип в программе, выполняемой в данной виртуальной машине.
AnnotatedTypeVariable
AnnotatedTypeVariable представляет потенциально аннотированную переменную типа, объявление которой может иметь границы, которые сами по себе представляют аннотированные типы.
AnnotatedWildcardType
AnnotatedWildcardType представляет потенциально аннотированный тип аргумента-подстановки, верхние или нижние границы которого могут сами по себе представлять аннотированные типы.
Array
Класс Array предоставляет статические методы для динамического создания и доступа к массивам Java.
ClassFileFormatVersion
Версии формата файлов классов виртуальной машины Java.
Constructor<T>
Constructor предоставляет информацию о и доступ к отдельному конструктору класса.
Executable
Общий суперкласс для общих функций Method и Constructor.
Field
Объект Field предоставляет информацию о и динамический доступ к отдельному полю класса или интерфейса.
GenericArrayType
GenericArrayType представляет тип массива, тип компонентов которого является либо параметризованным типом, либо переменной типа.
GenericDeclaration
Общий интерфейс для всех сущностей, которые объявляют переменные типа.
GenericSignatureFormatError
Выбрасывается, когда встречается синтаксически неправильный атрибут signature при использовании рефлексии, в котором нужно интерпретировать информацию о параметрах типа для класса или интерфейса, метода или конструктора.
InaccessibleObjectException
Выбрасывается, когда проверки доступа языка Java не могут быть подавлены.
InvocationHandler
InvocationHandler — интерфейс, реализуемый обработчиком вызовов экземпляра прокси.
InvocationTargetException
InvocationTargetException — это проверяемое исключение, которое оборачивает исключение, брошенное вызванным методом или конструктором.
MalformedParameterizedTypeException
Выбрасывается, когда встречается семантически неправильный параметризованный тип при использовании рефлексии, в котором нужно создать его экземпляр.
MalformedParametersException
Выбрасывается, когда the java.lang.reflect package пытается прочитать параметры метода из файла класса и определяет, что один или несколько параметров имеют неправильный формат.
Member
Member — это интерфейс, который отражает идентификационную информацию об одном члене (поле или методе) или конструкторе.
Method
Объект Method предоставляет информацию о и доступ к отдельному методу класса или интерфейса.
Modifier
Класс Modifier предоставляет static методы и константы для декодирования модификаторов доступа к классам и членам.
Parameter
Информация о параметрах метода.
ParameterizedType
ParameterizedType представляет параметризованный тип, такой как Collection<String>.
Proxy
Proxy предоставляет статические методы для создания объектов, которые ведут себя как экземпляры интерфейсов, но позволяют настраивать вызов методов.
RecordComponent
Объект RecordComponent предоставляет информацию о и динамический доступ к компоненту класса записи.
ReflectPermission
Класс разрешений для операций рефлексии.
Type
Type — это общий суперинтерфейс для всех типов в языке программирования Java.
TypeVariable<D extends GenericDeclaration>
TypeVariable — это общий суперинтерфейс для переменных типа разных типов.
UndeclaredThrowableException
Выбрасывается при вызове метода на экземпляре прокси, если метод invoke его обработчика вызовов выбрасывает проверяемое исключение (исключение Throwable, которое не приводимо к RuntimeException или Error), которое не приводимо ни к одному из типов исключений, объявленных в блоке throws вызываемого на экземпляре прокси метода и переданного в обработчик вызовов.
WildcardType
WildcardType представляет выражение типа подстановки, например ?, ? extends Number или ? super Integer.

© 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/java.base/java/lang/reflect/package-summary.html

Spec-Zone.ru

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