Maison >Java >javaDidacticiel >Comment puis-je trouver l'appelant d'une méthode Java à l'aide de Stack Trace ou de Reflection ?
Trouver l'appelant d'une méthode à l'aide de Stacktrace ou de réflexion
En Java, la détermination de l'appelant d'une méthode peut être réalisée via stacktrace ou réflexion .
Utilisation de Stacktrace
Le La méthode Thread.currentThread().getStackTrace() renvoie un tableau d'objets StackTraceElement, représentant les éléments de trace de pile du thread actuel. Le dernier élément du tableau représente le bas de la pile, ou l'appel de méthode le moins récent.
Chaque objet StackTraceElement donne accès au nom de la classe (getClassName()), au nom du fichier (getFileName()), à la ligne numéro (getLineNumber()) et nom de méthode (getMethodName()) de l’invocation de méthode correspondante. Pour déterminer l'appelant, vous pouvez généralement utiliser l'élément à l'index 1 ou 2 du tableau StackTraceElement.
Utilisation de Reflection
Reflection propose une autre approche pour identifier l'appelant. La méthode Class#getDeclaringClass() renvoie la classe qui a déclaré la méthode spécifiée. Cela peut être utile si vous souhaitez obtenir la classe de la méthode appelante quelle que soit la trace de pile actuelle.
Exemple
Voici un exemple utilisant stacktrace pour trouver l'appelant du courant méthode :
StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace(); if (stackTraceElements.length > 1) { StackTraceElement caller = stackTraceElements[1]; System.out.println("Caller: " + caller.getClassName() + "." + caller.getMethodName()); }
Considérations
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!