Maison > Java > javaDidacticiel > API StackWalker dans Java 9 ?

API StackWalker dans Java 9 ?

PHPz
Libérer: 2023-09-11 13:21:08
avant
886 Les gens l'ont consulté

Java 9中的StackWalker API?

StackWalker API permet un filtrage facile et un accès différé pour effectuer des tâches de n'importe quelle méthode. Il s'agit d'une API efficace dans Java 9 pour obtenir des informations de trace de pile.

Trois nouvelles classes importantes ont été ajoutées à l'API StackWalker : StackWalker, StackWalker.StackFrame et StackWalker.Option.

StackWalker C'est la classe principale de >StackWalker API. Nous utilisons la méthode StackWalker.forEach() pour parcourir le cadre de pile et obtenir efficacement la classe de l'appelant en appelant la méthode StackWalker.getCallerClass(). Nous utilisons la méthode StackWalker.walk() pour parcourir la trace de la pile et appliquer une fonction sur le flux du cadre de pile.

StackWalker.StackFrame Il s'agit d'une classe imbriquée statique de StackWalker, qui représente le retour d'appel de méthode de StackWalker. Il dispose de méthodes pour accéder aux informations d'un cadre de pile donné, telles que getDeclaringClass(), getLineNumber(), etc.

StackWalker.Option - Il s'agit d'une classe imbriquée statique de StackWalker Lorsque nous créons une instance via SackWalker.getInstance(), elle fournit au stack walker des options pour configurer les informations sur le cadre de pile.

Exemple

import java.util.List;
import java.util.stream.Collectors;
public class StackWalkingTest {
   public static void main(String args[]) {
      final <strong>List<StackWalker.StackFrame></strong> stack = StackWalker.<strong>getInstance()</strong>
      .<strong>walk</strong>(s -> s.<strong>collect</strong>(Collectors.toList()));
      for(<strong>StackWalker.StackFrame</strong> sf : stack) {
         System.out.println(sf.<strong>getClassName()</strong> + "::" + sf.<strong>getMethodName()</strong> + ":" + sf.<strong>getLineNumber()</strong>);
      }
   }
}
Copier après la connexion

Sortie

<strong>StackWalkingTest::main:6</strong>
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal