Mein Java ist rostig, also bitte mit mir ertragen. Ich kann in C tun:Verwendung der aktuellen Klasse in Java statische Methode Erklärung
int someFunc(void)
{
printf("I'm in %s\n", __func__);
}
In Java kann ich lexikalisch auf den Namen oder die Klasse des Typs erhalten derzeit definiert. Zum Beispiel, wenn ich habe:
import org.apache.log4j.Logger;
class myClass {
private static final Logger logger = Logger.getLogger(myClass.class);
...
}
Es scheint falsch "myClass" in dem getLogger() Argumente zu wiederholen. Ich möchte "getLogger (__ CLASS__)" oder "getLogger (this.class)" oder so etwas. (Ich weiß, dass beide dumm sind, aber sie sollten auf das zeigen, wonach ich suche.) Weiß der Java-Compiler wirklich nicht, in welcher Klasse er sich gerade befindet, während er die Quelle verarbeitet?
Sie es auch als Instanzvariable haben zu bekommen könnten und verwenden „this.getClass() ". Die Verwendung des Instanzattributs wäre eine bessere Idee, es sei denn, Sie benötigen es als Klassenattribut. – OscarRyz
der Compiler weiß, welche Klasse es ist, aber wussten Sie nicht, welche Klasse Sie schreiben? Entschuldigung, nur Spaß ... Ich hatte dieses Problem - fast den gleichen Code - aber ich habe nichts besseres gefunden als MyClass.class: -/brauche eine schöne IDE mit Code-Vorlagen und Refactoring ... –
Ich wünsche mir Java hatte das. Ich würde die Syntax 'static.class' empfehlen. – Boann