Java 9 fournit un moyen efficace de parcourir la pile pour un accès différé, en utilisant l'API StackWalker pour filtrer les traces de la pile. L'objet StackWalker nous permet de parcourir et d'accéder à la pile. Cette classe contient des méthodes utiles telles que walk(), forEach() et getCallerClass(). La méthode
getCallerClass() renvoie la classe qui a appelé la méthode. Afin de saisir l'instance de classe appelante, nous avons besoin de RETAIN_CLASS_REFERENCE lors de l'obtention de l'instance StackWalker. RETAIN_CLASS_REFERENCE Conserve les instances de toutes les classes traversées par StackWalker.
<strong>public Class<?><!--?--> getCallerClass()</strong>
import java.lang.StackWalker.Option; public class StackWalkerTest { public static void main(String args[]) { StackWalkerTest1.test1(); } } class StackWalkerTest1 { protected static void test1() { StackWalkerTest2.test2(); } } class StackWalkerTest2 { protected static void test2() { System.out.println(<strong>StackWalker.getInstance</strong>(<strong>Option.RETAIN_CLASS_REFERENCE</strong>).<strong>getCallerClass()</strong>); } }
<strong>class StackWalkerTest1</strong>
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!