Пакет 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
| Класс | Описание |
|---|---|
| AccessFlag | |
| 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