Altro
Java - ottenere il nome della classe corrente?
Tutto quello che sto cercando di fare è ottenere il nome della classe corrente, e java aggiunge un inutile $1 senza senso alla fine del mio nome di classe. Come posso sbarazzarmene e restituire solo il nome effettivo della classe?
String className = this.getClass().getName();
258
3
Il "$1" non è "inutile non-senso". Se la vostra classe è anonima, viene aggiunto un numero.
Se non volete la classe stessa, ma la sua classe dichiarante, allora potete usare
getEnclosingClass()
. Per esempio:Potete spostarlo in qualche metodo statico di utilità.
Ma nota che questo non è il nome della classe corrente. La classe anonima è una classe diversa da quella che la racchiude. Il caso è simile per le classi interne.
Provate ad usare questo
this.getClass().getCanonicalName()
othis.getClass().getSimpleName()
. Se si tratta di una classe anonima, usatethis.getClass().getSuperclass().getName()
.Nel tuo esempio,
this
si riferisce probabilmente a un'istanza di classe anonima. Java dà un nome a queste classi aggiungendo un$numero
al nome della classe che le racchiude.