Интерфейс StackWalker.StackFrame
- Вложенный класс:
StackWalker
public static interface StackWalker.StackFrame
StackFrame представляет вызов метода, возвращенный методом StackWalker. Параметры обхода стека конфигурируют информацию о кадрах стека, полученную объектом StackWalker. Если обход стека сконфигурирован с параметром DROP_METHOD_INFO, информация о методе, такая как имя метода, номер строки, индекс байт-кода и т.п., будет опущена. Если обход стека сконфигурирован с параметром RETAIN_CLASS_REFERENCE, объект Class будет сохранен для доступа.
- См. Спецификацию виртуальной машины Java:
- 2.6 Кадры
- С:
- 9
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
int |
getByteCodeIndex() |
Возвращает индекс в массиве кода атрибута Code, содержащего точку выполнения, представленную этим кадром стека. |
String |
getClassName() |
Возвращает двоичное имя класса-владельца метода, представленного этим кадром стека. |
Class |
getDeclaringClass() |
Возвращает класс-владелец Class для метода, представленного этим кадром стека. |
default String |
getDescriptor() |
Возвращает дескриптор метода, представленного этим кадром стека, как определено в Спецификации виртуальной машины Java. |
String |
getFileName() |
Возвращает имя исходного файла, содержащего точку выполнения, представленную этим кадром стека. |
int |
getLineNumber() |
Возвращает номер строки исходного кода, содержащей точку выполнения, представленную этим кадром стека. |
String |
getMethodName() |
Возвращает имя метода, представленного этим кадром стека. |
default MethodType |
getMethodType() |
Возвращает MethodType, представляющий типы параметров и возвращаемый тип для метода, представленного этим кадром стека. |
boolean |
isNativeMethod() |
Возвращает true, если метод, содержащий точку выполнения, представленную этим кадром стека, является нативным методом. |
StackTraceElement |
toStackTraceElement() |
Возвращает StackTraceElement для этого кадра стека. |
Подробности методов
getClassName
String getClassName()
- Возвращает:
- бинарное имя класса, объявившего метод, представленный этим стековым фреймом
- См. Спецификацию языка Java:
- 13.1 Формат двоичного кода
getMethodName
String getMethodName()
- Возвращает:
- имя метода, представленного этим стековым фреймом
- Исключение:
-
UnsupportedOperationException— еслиStackWalkerнастроен с опциейDROP_METHOD_INFO
getDeclaringClass
Class<?> getDeclaringClass()
Class для метода, представленного этим стековым фреймом.- Возвращает:
- объявляющий
Classдля метода, представленного этим стековым фреймом - Исключение:
-
UnsupportedOperationException— еслиStackWalkerнастроен без опцииRETAIN_CLASS_REFERENCE
getMethodType
default MethodType getMethodType()
MethodType, представляющий типы параметров и возвращаемый тип для метода, представленного этим стековым фреймом.- Требования к реализации:
- По умолчанию реализация выбрасывает
UnsupportedOperationException. - Возвращает:
MethodTypeметода, представленного этим стековым фреймом- Исключение:
-
UnsupportedOperationException— еслиStackWalkerнастроен с опциейDROP_METHOD_INFOили без опцииRETAIN_CLASS_REFERENCE - С версии:
- 10
getDescriptor
default String getDescriptor()
- Требования к реализации:
- По умолчанию реализация выбрасывает
UnsupportedOperationException. - Возвращает:
- описатель метода, представленного этим стековым фреймом
- Исключение:
-
UnsupportedOperationException— еслиStackWalkerнастроен с опциейDROP_METHOD_INFO - См. Спецификацию виртуальной машины Java:
- 4.3.3 Описатели методов
- С версии:
- 10
- См. также:
getByteCodeIndex
int getByteCodeIndex()
Code, содержащего точку выполнения, представленную этим стековым фреймом. Массив кода содержит фактические байты кода виртуальной машины Java, реализующие метод.- Возвращает:
- индекс в массив кода атрибута
Code, содержащего точку выполнения, представленную этим стековым фреймом, или отрицательное число, если метод является нативным. - Исключение:
-
UnsupportedOperationException— еслиStackWalkerнастроен с опциейDROP_METHOD_INFO - См. Спецификацию виртуальной машины Java:
- 4.7.3 Атрибут
Code
getFileName
String getFileName()
SourceFile соответствующего файла class, как определено в Спецификации виртуальной машины Java. В некоторых системах имя может ссылаться на какой-либо фрагмент исходного кода, помимо файла, например, на запись в системе управления исходными кодами.- Возвращает:
- имя файла, содержащего точку выполнения, представленную этим стековым фреймом, или
null, если эта информация недоступна. - Исключение:
-
UnsupportedOperationException— еслиStackWalkerнастроен с опциейDROP_METHOD_INFO - См. Спецификацию виртуальной машины Java:
- 4.7.10 Атрибут
SourceFile
getLineNumber
int getLineNumber()
LineNumberTable соответствующего файла class, как определено в Спецификации виртуальной машины Java.- Возвращает:
- номер строки исходного кода, содержащей точку выполнения, представленную этим стековым фреймом, или отрицательное число, если эта информация недоступна.
- Исключение:
-
UnsupportedOperationException— еслиStackWalkerнастроен с опциейDROP_METHOD_INFO - См. Спецификацию виртуальной машины Java:
- 4.7.12 Атрибут
LineNumberTable
isNativeMethod
boolean isNativeMethod()
true, если метод, содержащий точку выполнения, представленную этим стековым фреймом, является нативным методом.- Возвращает:
-
true, если метод, содержащий точку выполнения, представленную этим стековым фреймом, является нативным методом - Исключение:
-
UnsupportedOperationException— еслиStackWalkerнастроен с опциейDROP_METHOD_INFO
toStackTraceElement
StackTraceElement toStackTraceElement()
StackTraceElement для этого стекового фрейма.- Возвращает:
-
StackTraceElementдля этого стекового фрейма - Исключение:
-
UnsupportedOperationException— еслиStackWalkerнастроен с опциейDROP_METHOD_INFO
© 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/StackWalker.StackFrame.html