Maison > Java > javaDidacticiel > Comment puis-je obtenir le nom de la méthode actuelle en Java ?

Comment puis-je obtenir le nom de la méthode actuelle en Java ?

DDD
Libérer: 2024-12-18 17:41:11
original
796 Les gens l'ont consulté

How Can I Get the Current Method's Name in Java?

Obtention du nom de la méthode actuelle en Java

Les développeurs recherchent souvent des moyens de récupérer le nom de la méthode en cours d'exécution en Java à des fins de dépannage ou à des fins informatives. Bien qu'il existe de nombreuses approches, certaines sont plus efficaces que d'autres.

Object.getClass().getEnclosingMethod().getName()

Une méthode consiste à créer un classe interne anonyme :

String name = new Object(){}.getClass().getEnclosingMethod().getName();
Copier après la connexion

Cependant, cette technique présente des inconvénients :

  • Elle génère une nouvelle classe interne anonyme au moment de la compilation, entraînant une surcharge de création de fichier .class.
  • Il crée une instance d'objet inutilisée au moment de l'exécution.

Avantages :

  • Renvoie un objet java.lang.reflect.Method, donnant accès aux annotations et paramètres de la méthode noms.
  • Peut différencier les méthodes portant le même nom (surcharge).
  • Selon le JavaDoc, il ne lance pas d'exception de sécurité puisque les classes internes se chargent en utilisant le même chargeur de classe.

Remarque : Pour les constructeurs, utilisez plutôt getEnclosingConstructor(). Pendant les blocs en dehors des méthodes nommées, getEnclosingMethod() renvoie null.

Bien que cette approche soit une solution valable, les développeurs doivent peser la surcharge par rapport à la fonctionnalité souhaitée avant de l'utiliser pour le code de production.

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:php.cn
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