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 ?
Réponses
Trop de publicités?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.
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
.