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
`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.
`Optional<String>` `getFileName()` Returns the name of the source file containing the execution point represented by this stack frame.
`OptionalInt` `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`.

#### getFileName

    Optional<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 empty `Optional` is unavailable.
See The Java™ Virtual Machine Specification:
  4.7.10 The `SourceFile` Attribute

#### getLineNumber

    OptionalInt 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 empty `Optional` 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.