351 votes

Java - obtenir le nom de la classe actuelle ?

Tout ce que je suis en train de faire est d’obtenir le nom de la classe actuelle, et java ajoute une inutile de non-sens $1 à la fin de mon nom de la classe. Comment puis-je me débarrasser de celui-ci et retourner uniquement le nom de la classe réelle ?

322voto

jesg Points 359

Essayez,

Ceci fonctionnera tant que vous n’utilisez pas il dans une méthode statique.

291voto

Bozho Points 273663

Le « $1 » n’est pas « inutile non-sense ». Si votre classe est anonyme, un numéro est ajouté.

Si vous ne voulez pas la classe elle-même, mais sa classe déclarant, alors vous pouvez utiliser `` . Par exemple :

Vous pouvez déplacer que dans une méthode utilitaire statique.

Mais notez que ce n’est pas le nom de la classe actuelle. La classe anonyme est de catégorie différente de celle de sa classe englobante. Le cas est similaire pour les classes internes.

35voto

MirroredFate Points 2440

Essayez d’utiliser ou . Si il s’agit d’une classe anonyme, utilisez``

2voto

tonio Points 5773

Dans votre exemple, se réfère probablement à une instance de la classe anonyme. Java a donne un nom à ces classes en ajoutant une au nom de la classe englobante.

1voto

trutheality Points 13261

Je suis en supposant que ce qui se passe pour une classe anonyme. Lorsque vous créez une classe anonyme créer une classe qui étend la classe dont le nom que vous avez obtenu.

Le "nettoyeur" de façon à obtenir le nom que vous voulez, c'est:

Si votre classe anonyme interne de la classe, getSuperClass() devrait vous donner la classe qu'il a été créé à partir. Si vous avez créé à partir d'une interface que vous êtes plutôt du genre du SOL parce que le meilleur que vous pouvez faire est de getInterfaces() qui peut vous donner plus d'une interface.

Le "hacky" façon est de simplement obtenir le nom d' getClassName() et l'utilisation d'une expression régulière à la baisse de l' $1.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X