Module java.base
Package java.lang

Interface StackWalker.StackFrame

封闭类:
StackWalker

public static interface StackWalker.StackFrame
一个StackFrame对象表示由StackWalker返回的方法调用。

getDeclaringClass()方法可能不受堆栈遍历选项的支持,这由堆栈遍历器决定。

参见Java虚拟机规范:
2.6
自JDK版本:
9
  • Method Summary

    Modifier and Type
    Method
    Description
    int
    返回代表此堆栈帧所表示的执行点的Code属性的代码数组索引。
    获取此堆栈帧所表示方法的声明类的二进制名称
    Class<?>
    获取此堆栈帧所表示方法的声明Class
    default String
    返回由Java虚拟机规范定义的此堆栈帧所代表方法的描述符
    返回代表此堆栈帧所表示的执行点的源文件的名称。
    int
    返回代表此堆栈帧所表示的执行点的源行的行号。
    获取此堆栈帧所表示方法的名称。
    default MethodType
    返回代表此堆栈帧所表示方法的MethodType,表示方法的参数类型和返回类型。
    boolean
    如果包含此堆栈帧所表示的执行点的方法是本地方法,则返回true
    获取此堆栈帧的StackTraceElement
  • Method Details

    • getClassName

      String getClassName()
      获取此堆栈帧所表示方法的声明类的二进制名称
      返回:
      此堆栈帧所表示方法的声明类的二进制名称
      参见Java语言规范:
      13.1 二进制形式
    • getMethodName

      String getMethodName()
      获取此堆栈帧所表示方法的名称。
      返回:
      此堆栈帧所表示方法的名称
    • getDeclaringClass

      Class<?> getDeclaringClass()
      获取此堆栈帧所表示方法的声明Class
      返回:
      此堆栈帧所表示方法的声明Class
      抛出:
      UnsupportedOperationException - 如果此StackWalker未配置为使用Option.RETAIN_CLASS_REFERENCE
    • getMethodType

      default MethodType getMethodType()
      返回代表此堆栈帧所表示方法的MethodType,表示方法的参数类型和返回类型。
      实现要求:
      默认实现会抛出UnsupportedOperationException
      返回:
      此堆栈帧的MethodType
      抛出:
      UnsupportedOperationException - 如果此StackWalker未配置为使用Option.RETAIN_CLASS_REFERENCE
      自JDK版本:
      10
    • getDescriptor

      default String getDescriptor()
      返回由Java虚拟机规范定义的此堆栈帧所代表方法的描述符
      实现要求:
      默认实现会抛出UnsupportedOperationException
      返回:
      此堆栈帧所表示方法的描述符
      参见Java虚拟机规范:
      4.3.3 方法描述符
      自JDK版本:
      10
      另请参阅:
    • getByteCodeIndex

      int getByteCodeIndex()
      返回代表此堆栈帧所表示的执行点的Code属性的代码数组索引。代码数组提供了实现方法的Java虚拟机代码的实际字节。
      返回:
      返回代表此堆栈帧所表示的执行点的Code属性的代码数组索引,如果方法是本地方法则返回负数。
      参见Java虚拟机规范:
      4.7.3 Code属性
    • getFileName

      String getFileName()
      返回代表此堆栈帧所表示的执行点的源文件的名称。通常,这对应于由Java虚拟机规范定义的相关class文件的SourceFile属性。在某些系统中,该名称可能指的是除文件之外的某个源代码单元,例如源代码库中的条目。
      返回:
      返回代表此堆栈帧所表示的执行点的源文件的名称,如果此信息不可用则返回null
      参见Java虚拟机规范:
      4.7.10 SourceFile属性
    • getLineNumber

      int getLineNumber()
      返回代表此堆栈帧所表示的执行点的源行的行号。通常,这是根据由Java虚拟机规范定义的相关class文件的LineNumberTable属性推导出的。
      返回:
      返回代表此堆栈帧所表示的执行点的源行的行号,如果此信息不可用则返回负数。
      参见Java虚拟机规范:
      4.7.12 LineNumberTable属性
    • isNativeMethod

      boolean isNativeMethod()
      如果包含此堆栈帧所表示的执行点的方法是本地方法,则返回true
      返回:
      如果包含此堆栈帧所表示的执行点的方法是本地方法,则返回true
    • toStackTraceElement

      StackTraceElement toStackTraceElement()
      获取此堆栈帧的StackTraceElement
      返回:
      此堆栈帧的StackTraceElement