Ich suche einen "Selbst" -Referenz auf die aktuelle Klasse in JAVA in einem statischen Kontext wie in PHP Scope Resolution Operator ?
Lösung: Break out of Scope? ACHTUNG, dies wird mit einer statischen Definition wirklich langsam (um den Faktor 300) verglichen:
%Vor%Der altmodische Weg wäre:
%Vor%Gibt es Alternativen? Ich suche nach einer Möglichkeit, die Loggerdefinition in eine abstrakte Klasse zu stellen. Der Logger sollte die Klasse bestimmen, von der er aufgerufen wird.
Das etwas schnellere
%Vor%Wenn Sie dies 1000 Mal tun, dauert es 36 ms mit Class.class.getName () und 60 ms, wenn Sie so vorgehen. Vielleicht lohnt es sich nicht, sich zu viele Sorgen zu machen. ;)
Sie sollten den Logger nicht erben. Erklären Sie einfach Logger in jeder Klasse.
Aber wenn du nicht willst, dass du so nützlich denkst, mach es einfach nicht statisch)
Ich glaube nicht, dass es Alternativen gibt, die sich signifikant von den beiden in Ihrer Frage unterscheiden.
Sie könnten eine Hilfsmethode wie folgt erstellen:
%Vor%und dann
%Vor%aber das ist so teuer wie die Originalversion. (FWIW - 300-mal so langsam ist wahrscheinlich kein Hauptproblem, es sei denn, Sie haben Tausende von diesen Loggern. Jede dieser Statiken wird nur einmal initialisiert ...)
Meine persönliche Vorliebe ist für die "altmodische" Art, es zu tun.