Интерфейс ClassReader
- Все суперинтерфейсы:
-
ConstantPool,Iterable<PoolEntry>
public sealed interface ClassReader extends ConstantPool
AttributeMapper. Поддерживает чтение произвольных смещений в файле class и чтение данных различных числовых типов (например, u2, u4) помимо доступа к пулу констант. Все числовые значения в формате файла class являются big endian.
Если не указано иное, любой доступ за пределы границ приводит к исключению 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 |
Возвращает байт типа byte по указанному смещению в файле class. |
int |
readS2 |
Возвращает байт типа byte по указанному смещению в файле class. |
int |
readU1 |
Возвращает беззнаковое значение типа byte по указанному смещению в файле
class. |
int |
readU2 |
Возвращает беззнаковое значение типа short по указанному смещению в файле
class. |
Optional |
superclassEntry() |
Возвращает запись пула констант, описывающую имя суперкласса, если таковой существует. |
ClassEntry |
thisClassEntry() |
Возвращает запись пула констант, описывающую имя класса. |
Методы, унаследованные от интерфейса java.lang.classfile.constantpool.ConstantPool
bootstrapMethodCount, bootstrapMethodEntry, entryByIndex, entryByIndex, iterator, size
Методы, унаследованные от интерфейса java.lang.Iterable
forEach, spliterator
Подробное описание методов
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
int readU2(int offset)
class. Считывает значение из 2 байт и расширяет его до беззнакового int.- Параметры:
-
offset- смещение в файлеclass - Возвращает:
- беззнаковое короткое целое число по указанному смещению в файле
class
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 - Возвращает:
- знаковое целое число по указанному смещению в файле
class
readLong
long readLong(int offset)
class. Считывает 8 байт значения.- Параметры:
-
offset- смещение в файлеclass - Возвращает:
- знаковое длинное целое число по указанному смещению в файле
class
readFloat
float readFloat(int offset)
class. Считывает 4 байта значения. При преобразованиях все значения NaN из float могут или не могут быть объединены в одно "каноническое" значение NaN.
- Параметры:
-
offset- смещение в файлеclass - Возвращает:
- значение с плавающей точкой по указанному смещению в файле
class
readDouble
double readDouble(int offset)
class. Считывает 8 байт значения. При преобразованиях все значения NaN из double могут или не могут быть объединены в одно "каноническое" значение NaN.
- Параметры:
-
offset- смещение в файлеclass - Возвращает:
- значение двойной точности по указанному смещению в файле
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.
https://download.java.net/java/early_access/jdk24/docs/api/java.base/java/lang/classfile/ClassReader.html