
- Java Tutorial
- Java - Home
- Java - Overview
- Java - Environment Setup
- Java - Basic Syntax
- Java - Object & Classes
- Java - Constructors
- Java - Basic Datatypes
- Java - Variable Types
- Java - Modifier Types
- Java - Basic Operators
- Java - Loop Control
- Java - Decision Making
- Java - Numbers
- Java - Characters
- Java - Strings
- Java - Arrays
- Java - Date & Time
- Java - Regular Expressions
- Java - Methods
- Java - Files and I/O
- Java - Exceptions
- Java - Inner classes
- Java Object Oriented
- Java - Inheritance
- Java - Overriding
- Java - Polymorphism
- Java - Abstraction
- Java - Encapsulation
- Java - Interfaces
- Java - Packages
- Java Advanced
- Java - Data Structures
- Java - Collections
- Java - Generics
- Java - Serialization
- Java - Networking
- Java - Sending Email
- Java - Multithreading
- Java - Applet Basics
- Java - Documentation
- Java Useful Resources
- Java - Questions and Answers
- Java - Quick Guide
- Java - Useful Resources
- Java - Discussion
- Java - Examples
StackWalker API in Java 9?
StackWalker API allows easy filtering and lazy access to execute tasks within any method. It is an efficient API for obtaining stack trace information in Java 9.
There are three new important classes in StackWalker API: StackWalker, StackWalker.StackFrame and StackWalker.Option.
StackWalker − It is the main class in StackWalker API. We traverse stack frames by using StackWalker.forEach() method and get caller class in an efficient way by calling StackWalker.getCallerClass() method. We walk through stack traces and applying a function on a stream of stack frames by using StackWalker.walk() method.
StackWalker.StackFrame − It is a static nested class of StackWalker and represents method invocation return by StackWalker. It has methods to access a given stack frame information like getDeclaringClass(), getLineNumber() and etc.
StackWalker.Option − It is a static nested class of StackWalker and provides options for the stack walker to configure the stack frame information when we create an instance via SackWalker.getInstance().
Example
import java.util.List; import java.util.stream.Collectors; public class StackWalkingTest { public static void main(String args[]) { final List<StackWalker.StackFrame> stack = StackWalker.getInstance() .walk(s -> s.collect(Collectors.toList())); for(StackWalker.StackFrame sf : stack) { System.out.println(sf.getClassName() + "::" + sf.getMethodName() + ":" + sf.getLineNumber()); } } }
Output
StackWalkingTest::main:6
- Related Articles
- How to filter stack frames using StackWalker API in Java 9?
- How to print different stack frames using StackWalker API in Java?\n
- How to access each stack element of StackWalker in Java 9?
- What is Platform Logging API in Java 9?
- What are the improvements in Process API in Java 9?
- What are the CompletableFuture API improvements in Java 9?\n
- How to print all attributes in StackFrame API in Java 9?
- Importance of iterate() method of Stream API in Java 9?\n
- How to implement reactive streams using Flow API in Java 9?
- What are the steps to execute Flow API in Java 9?
- How can we implement methods of Stream API in Java 9?
- How to use the collect() method in Stream API in Java 9?
- What are the core library changes in Process API in Java 9?
- What are the new features added to Stream API in Java 9?
- What are the new methods added to Process API in Java 9?
