Интерфейс ClassReader
- Все суперинтерфейсы:
ConstantPool, Iterable<PoolEntry>
public sealed interface ClassReader extends ConstantPool
class для AttributeMapper. Поддерживает чтение по произвольным смещениям в файле class и чтение данных различных числовых типов (например, u2, u4) в дополнение к доступу к пулу констант. Все числовые значения в формате файла class имеют порядок байтов от старшего к младшему.
Если не указано иное, доступ за пределами допустимого диапазона приводит к IllegalArgumentException, указывающему на повреждение данных файла class. Поскольку данные файла class являются произвольными, пользователям следует проверять структурную целостность данных перед попыткой интерпретировать потенциально поврежденные данные.
- С версии:
- 24
- См. также:
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
int |
classfileLength() |
Возвращает длину файла class в байтах. |
void |
copyBytesTo |
Копирует диапазон байтов из файла class в BufWriter. |
Function |
customAttributes() |
Возвращает таблицу пользовательских сопоставителей атрибутов. |
int |
flags() |
Возвращает флаги доступа к классу в виде битовой маски. |
byte[] |
readBytes |
Возвращает копию байтов в указанном диапазоне файла class. |
double |
readDouble |
Возвращает значение типа double по указанному смещению в файле
class. |
PoolEntry |
readEntry |
Возвращает запись пула констант, индекс которой указан по заданному смещению в файле class. |
<T extends PoolEntry> |
readEntry |
Возвращает запись пула констант заданного типа, индекс которой указан по заданному смещению в файле class. |
PoolEntry |
readEntryOrNull |
Возвращает запись пула констант, индекс которой указан по заданному смещению в файле class, или null, если индекс по указанному смещению равен нулю. |
<T extends PoolEntry> |
readEntryOrNull |
Возвращает запись пула констант заданного типа, индекс которой указан по заданному смещению в файле class, или null, если индекс по указанному смещению равен нулю. |
float |
readFloat |
Возвращает значение типа float по указанному смещению в файле class. |
int |
readInt |
Возвращает знаковое значение типа int по указанному смещению в файле class. |
long |
readLong |
Возвращает знаковое значение типа long по указанному смещению в файле class. |
int |
readS1 |
Возвращает знаковый байт по указанному смещению в файле class. |
int |
readS2 |
Возвращает знаковый байт по указанному смещению в файле class. |
int |
readU1 |
Возвращает беззнаковый байт по указанному смещению в файле
class. |
int |
readU2 |
Возвращает u2 по указанному смещению в файле class. |
Optional |
superclassEntry() |
Возвращает запись пула констант, содержащую имя суперкласса, если он есть. |
ClassEntry |
thisClassEntry() |
Возвращает запись пула констант, содержащую имя класса. |
Методы, объявленные в интерфейсе ConstantPool
bootstrapMethodCount, bootstrapMethodEntry, entryByIndex, entryByIndex, iterator, size | Модификатор и тип | Метод | Описание |
|---|---|---|
int |
bootstrapMethodCount() |
Возвращает количество записей в таблице методов начальной загрузки. |
BootstrapMethodEntry |
bootstrapMethodEntry |
Возвращает BootstrapMethodEntry с указанным индексом в таблице методов начальной загрузки. |
PoolEntry |
entryByIndex |
Возвращает запись с указанным индексом. |
<T extends PoolEntry> |
entryByIndex |
Возвращает запись заданного типа с указанным индексом. |
default Iterator |
iterator() |
Возвращает итератор по записям пула. |
int |
size() |
Возвращает исключительную верхнюю границу допустимых индексов этого пула констант. |
Методы, объявленные в интерфейсе Iterable
forEach, spliterator | Модификатор и тип | Метод | Описание |
|---|---|---|
default void |
forEach |
Выполняет заданное действие для каждого элемента Iterable, пока не будут обработаны все элементы или действие не вызовет исключение. |
default Spliterator |
spliterator() |
Создает Spliterator для элементов, описанных этим Iterable. |
Подробное описание методов
customAttributes
Function<Utf8Entry, AttributeMapper<?>> customAttributes()
ClassFile.AttributeMapperOption.- Возвращает:
- таблицу пользовательских сопоставителей атрибутов
flags
int flags()
- Возвращает:
- флаги доступа к классу в виде битовой маски
- См. также:
thisClassEntry
ClassEntry thisClassEntry()
- Возвращает:
- запись пула констант, содержащую имя класса
- См. также:
superclassEntry
Optional<ClassEntry> superclassEntry()
- Возвращает:
- запись пула констант, содержащую имя суперкласса, если он есть
- См. также:
classfileLength
int classfileLength()
class в байтах.- Возвращает:
- длину файла
classв байтах
readEntry
PoolEntry readEntry(int offset)
class.- Примечание API:
- Если ожидается запись только определенного типа, используйте
readEntry(int, Class). - Параметры:
-
offset— смещение индекса в файлеclass - Возвращает:
- запись пула констант, индекс которой указан по заданному смещению в файле
class - Вызывает:
-
ConstantPoolException— если индекс выходит за пределы размера пула констант или равен нулю
readEntry
<T extends PoolEntry> T readEntry(int offset, Class<T> cls)
class.- Параметры типа:
T— тип записи- Параметры:
-
offset— смещение индекса в файлеclass -
cls— тип записи - Возвращает:
- запись пула констант заданного типа, индекс которой указан по заданному смещению в файле
class - Вызывает:
-
ConstantPoolException— если индекс выходит за пределы размера пула констант или равен нулю либо запись не имеет заданного типа
readEntryOrNull
PoolEntry readEntryOrNull(int offset)
class, или null, если индекс по указанному смещению равен нулю.- Примечание API:
- Если ожидается запись только определенного типа, используйте
readEntryOrNull(int, Class). - Параметры:
-
offset— смещение индекса в файлеclass - Возвращает:
- запись пула констант, индекс которой указан по заданному смещению в файле
class, илиnull, если индекс по указанному смещению равен нулю - Вызывает:
-
ConstantPoolException— если индекс выходит за пределы размера пула констант
readEntryOrNull
<T extends PoolEntry> T readEntryOrNull(int offset, Class<T> cls)
class, или null, если индекс по указанному смещению равен нулю.- Параметры типа:
T— тип записи- Параметры:
-
offset— смещение индекса в файлеclass -
cls— тип записи - Возвращает:
- запись пула констант заданного типа, индекс которой указан по заданному смещению в файле
class, илиnull, если индекс по указанному смещению равен нулю - Вызывает:
-
ConstantPoolException— если индекс выходит за пределы размера пула констант или равен нулю либо запись не имеет заданного типа
readU1
int readU1(int offset)
class. Считывает байт и расширяет его нулями до значения типа int.- Параметры:
-
offset— смещение в файлеclass - Возвращает:
- беззнаковый байт по указанному смещению в файле
class
readU2
readS1
int readS1(int offset)
class. Считывает байт и расширяет его знаком до значения типа int.- Параметры:
-
offset— смещение в файлеclass - Возвращает:
- знаковый байт по указанному смещению в файле
class
readS2
int readS2(int offset)
class. Считывает 2-байтовое значение и расширяет его знаком до значения типа int.- Параметры:
-
offset— смещение в файлеclass - Возвращает:
- знаковый байт по указанному смещению в файле
class
readInt
int readInt(int offset)
class. Считывает значение размером 4 байта.- Параметры:
-
offset— смещение в файлеclass - Возвращает:
- знаковое значение типа int по указанному смещению в файле
class
readLong
long readLong(int offset)
class. Считывает значение размером 8 байт.- Параметры:
-
offset— смещение в файлеclass - Возвращает:
- знаковое значение типа long по указанному смещению в файле
class
readFloat
float readFloat(int offset)
class. Считывает значение размером 4 байта. При преобразованиях все значения NaN типа float могут быть сведены или не сведены к одному «каноническому» значению NaN.
- Параметры:
-
offset— смещение в файлеclass - Возвращает:
- значение типа float по указанному смещению в файле
class
readDouble
double readDouble(int offset)
class. Считывает значение размером 8 байт. При преобразованиях все значения NaN типа double могут быть сведены или не сведены к одному «каноническому» значению NaN.
- Параметры:
-
offset— смещение в файлеclass - Возвращает:
- значение типа double по указанному смещению в файле
class
readBytes
byte[] readBytes(int offset, int len)
class.- Параметры:
-
offset— смещение в файлеclass -
len— длина диапазона - Возвращает:
- копию байтов в указанном диапазоне файла
class
copyBytesTo
© 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.