Module java.base
Package java.lang

# Enum Class StackWalker.Option

java.lang.Object
java.lang.Enum<StackWalker.Option>
java.lang.StackWalker.Option

All Implemented Interfaces:
  `Serializable`, `Comparable<StackWalker.Option>`, `Constable`

Enclosing class:
  `StackWalker`

public static enum StackWalker.Option extends Enum<StackWalker.Option>
Stack walker option to configure the stack frame information obtained by a `StackWalker`.

Since:
  9

- ## Nested Class Summary

  ## Nested classes/interfaces declared in class java.lang.Enum

  `Enum.EnumDesc<E extends Enum<E>>`

- ## Enum Constant Summary

  Enum Constants
  Enum Constant
  Description
  `RETAIN_CLASS_REFERENCE`
  Retains `Class` object in `StackFrame`s walked by this `StackWalker`.
  `SHOW_HIDDEN_FRAMES`
  Shows all hidden frames.
  `SHOW_REFLECT_FRAMES`
  Shows all reflection frames.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static StackWalker.Option`
  `valueOf(String name)`
  Returns the enum constant of this class with the specified name.
  `static StackWalker.Option[]`
  `values()`
  Returns an array containing the constants of this enum class, in the order they are declared.

  ### Methods declared in class java.lang.Enum

  `clone, compareTo, describeConstable, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf`

  ### Methods declared in class java.lang.Object

  `getClass, notify, notifyAll, wait, wait, wait`

- ## Enum Constant Details

  - ### RETAIN_CLASS_REFERENCE

    public static final StackWalker.Option RETAIN_CLASS_REFERENCE
    Retains `Class` object in `StackFrame`s walked by this `StackWalker`.

    A `StackWalker` configured with this option will support `StackWalker.getCallerClass()` and `StackFrame.getDeclaringClass()`.

  - ### SHOW_REFLECT_FRAMES

    public static final StackWalker.Option SHOW_REFLECT_FRAMES
    Shows all reflection frames.

    By default, reflection frames are hidden. A `StackWalker` configured with this `SHOW_REFLECT_FRAMES` option will show all reflection frames that include `Method.invoke(java.lang.Object, java.lang.Object...)` and `Constructor.newInstance(Object...)` and their reflection implementation classes.

    The `SHOW_HIDDEN_FRAMES` option can also be used to show all reflection frames and it will also show other hidden frames that are implementation-specific.

    API Note:
      This option includes the stack frames representing the invocation of `Method` and `Constructor`. Any utility methods that are equivalent to calling `Method.invoke` or `Constructor.newInstance` such as `Class.newInstance` are not filtered or controlled by any stack walking option.

  - ### SHOW_HIDDEN_FRAMES

    public static final StackWalker.Option SHOW_HIDDEN_FRAMES
    Shows all hidden frames.

    A Java Virtual Machine implementation may hide implementation specific frames in addition to reflection frames. A `StackWalker` with this `SHOW_HIDDEN_FRAMES` option will show all hidden frames (including reflection frames).

- ## Method Details

  - ### values

    public static StackWalker.Option[] values()
    Returns an array containing the constants of this enum class, in the order they are declared.
    Returns:
      an array containing the constants of this enum class, in the order they are declared

  - ### valueOf

    public static StackWalker.Option valueOf(String name)
    Returns the enum constant of this class with the specified name. The string must match exactly an identifier used to declare an enum constant in this class. (Extraneous whitespace characters are not permitted.)
    Parameters:
      `name` - the name of the enum constant to be returned.
    Returns:
      the enum constant with the specified name
    Throws:
      `IllegalArgumentException` - if this enum class has no constant with the specified name
      `NullPointerException` - if the argument is null