Module java.base
Package java.lang

Class StackWalker


  • public final class StackWalker
    extends Object
    This provides a facility for iterating over the call stack of the current thread. A StackWalker object may be used multiple times by different threads, but it will represent the state of the current thread at the time the stack is walked. A StackWalker may be provided with one or more Option settings to include information and stack frames such as reflection methods, hidden frames, and Class objects.
    • Method Detail

      • getInstance

        public static StackWalker getInstance()
        Factory method to create a StackWalker instance with no options set.
        Returns:
        StackWalker StackWalker object
      • getInstance

        public static StackWalker getInstance​(StackWalker.Option option)
        Factory method to create a StackWalker with one option. This is provided for the case where only a single option is required.
        Parameters:
        option - select the type of information to include
        Returns:
        StackWalker instance configured with the value of option
        Throws:
        SecurityException - if option is RETAIN_CLASS_REFERENCE and the security manager check fails.
      • getInstance

        public static StackWalker getInstance​(Set<StackWalker.Option> options)
        Factory method to create a StackWalker with any number of options.
        Parameters:
        options - select the types of information to include.
        Returns:
        StackWalker instance configured with the given options
        Throws:
        SecurityException - if RETAIN_CLASS_REFERENCE is requested and not permitted by the security manager
      • getInstance

        public static StackWalker getInstance​(Set<StackWalker.Option> options,
                                              int estimatedDepth)
        Factory method to create a StackWalker.
        Parameters:
        options - select the types of information to include.
        estimatedDepth - Hint for the size of buffer to use. Must be 1 or greater.
        Returns:
        StackWalker instance with the given options specifying the stack frame information it can access.
        Throws:
        SecurityException - if RETAIN_CLASS_REFERENCE is requested and not permitted by the security manager
      • walk

        public <T> T walk​(Function<? super Stream<StackWalker.StackFrame>,​? extends T> function)
        Traverse the calling thread's stack at the time this method is called and apply function to each stack frame.
        Type Parameters:
        T - the type of the return value from applying function to the stream
        Parameters:
        function - operation to apply to the stream
        Returns:
        the value returned by function.