Viac na
Java - získať aktuálny názov triedy?
Snažím sa len získať aktuálny názov triedy a java mi na koniec názvu triedy pridá zbytočný nezmysel $1. Ako sa ho môžem zbaviť a vrátiť len aktuálny názov triedy?
String className = this.getClass().getName();
258
3
"$1" nie je "zbytočný nezmysel". Ak je vaša trieda anonymná, pridá sa číslo.
Ak nechcete'samotnú triedu, ale jej deklarujúcu triedu, potom môžete použiť
getEnclosingClass()
. Napríklad:Môžete to presunúť do nejakej statickej obslužnej metódy.
Všimnite si však, že to nie je aktuálny názov triedy. Anonymná trieda je iná trieda ako jej obklopujúca trieda. Podobný prípad je aj pri vnútorných triedach.
Skúste použiť tento
this.getClass().getCanonicalName()
alebothis.getClass().getSimpleName()
. Ak je to anonymná trieda, použitethis.getClass().getSuperclass().getName()
Vo vašom príklade
this
pravdepodobne odkazuje na anonymnú inštanciu triedy. Java dáva týmto triedam meno tak, že k názvu obklopujúcej triedy pridá$číslo
.