Module java.base
Package java.lang

## Interface StackWalker.StackFrame

- Enclosing class:
    StackWalker

      public static interface StackWalker.StackFrame

  A `StackFrame` object represents a method invocation returned by `StackWalker`.

  The `getDeclaringClass()` method may be unsupported as determined by the stack walking options of a stack walker.

  Since:
    9
  See The Java™ Virtual Machine Specification:
    2.6

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `int` | `getByteCodeIndex​()` | Returns the index to the code array of the `Code` attribute containing the execution point represented by this stack frame.
    `String` | `getClassName​()` | Gets the binary name of the declaring class of the method represented by this stack frame.
    `Class<?>` | `getDeclaringClass​()` | Gets the declaring `Class` for the method represented by this stack frame.
    `String` | `getFileName​()` | Returns the name of the source file containing the execution point represented by this stack frame.
    `int` | `getLineNumber​()` | Returns the line number of the source line containing the execution point represented by this stack frame.
    `String` | `getMethodName​()` | Gets the name of the method represented by this stack frame.
    `boolean` | `isNativeMethod​()` | Returns `true` if the method containing the execution point represented by this stack frame is a native method.
    `StackTraceElement` | `toStackTraceElement​()` | Gets a `StackTraceElement` for this stack frame.

- - ### Method Detail

    - #### getClassName

          String getClassName​()

      Gets the binary name of the declaring class of the method represented by this stack frame.
      Returns:
        the binary name of the declaring class of the method represented by this stack frame
      See The Java™ Language Specification:
        13.1 The Form of a Binary

    - #### getMethodName

          String getMethodName​()

      Gets the name of the method represented by this stack frame.
      Returns:
        the name of the method represented by this stack frame

    - #### getDeclaringClass

          Class<?> getDeclaringClass​()

      Gets the declaring `Class` for the method represented by this stack frame.
      Returns:
        the declaring `Class` of the method represented by this stack frame
      Throws:
        `UnsupportedOperationException` - if this `StackWalker` is not configured with `Option.RETAIN_CLASS_REFERENCE`.

    - #### getByteCodeIndex

          int getByteCodeIndex​()

      Returns the index to the code array of the `Code` attribute containing the execution point represented by this stack frame. The code array gives the actual bytes of Java Virtual Machine code that implement the method.
      Returns:
        the index to the code array of the `Code` attribute containing the execution point represented by this stack frame, or a negative number if the method is native.
      See The Java™ Virtual Machine Specification:
        4.7.3 The `Code` Attribute

    - #### getFileName

          String getFileName​()

      Returns the name of the source file containing the execution point represented by this stack frame. Generally, this corresponds to the `SourceFile` attribute of the relevant `class` file as defined by The Java Virtual Machine Specification. In some systems, the name may refer to some source code unit other than a file, such as an entry in a source repository.
      Returns:
        the name of the file containing the execution point represented by this stack frame, or `null` if this information is unavailable.
      See The Java™ Virtual Machine Specification:
        4.7.10 The `SourceFile` Attribute

    - #### getLineNumber

          int getLineNumber​()

      Returns the line number of the source line containing the execution point represented by this stack frame. Generally, this is derived from the `LineNumberTable` attribute of the relevant `class` file as defined by The Java Virtual Machine Specification.
      Returns:
        the line number of the source line containing the execution point represented by this stack frame, or a negative number if this information is unavailable.
      See The Java™ Virtual Machine Specification:
        4.7.12 The `LineNumberTable` Attribute

    - #### isNativeMethod

          boolean isNativeMethod​()

      Returns `true` if the method containing the execution point represented by this stack frame is a native method.
      Returns:
        `true` if the method containing the execution point represented by this stack frame is a native method.

    - #### toStackTraceElement

          StackTraceElement toStackTraceElement​()

      Gets a `StackTraceElement` for this stack frame.
      Returns:
        `StackTraceElement` for this stack frame.