Die "1 $" sind kein "nutzloser Unsinn". Wenn Ihre Klasse anonym ist, wird eine Zahl angehängt.
Wenn Sie nicht die Klasse selbst, sondern ihre deklarierende Klasse wollen, können Sie getEnclosingClass()
. Zum Beispiel:
Class<?> enclosingClass = getClass().getEnclosingClass();
if (enclosingClass != null) {
System.out.println(enclosingClass.getName());
} else {
System.out.println(getClass().getName());
}
Sie können das in eine statische Dienstprogrammmethode verschieben.
Beachten Sie jedoch, dass dies nicht der aktuelle Klassenname ist. Die anonyme Klasse ist eine andere Klasse als die sie umschließende Klasse. Ähnlich verhält es sich bei inneren Klassen.