Java "self" (statische) Referenz

8

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.

    
feffi 11.03.2011, 09:18
quelle

3 Antworten

13

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. ;)

    
Peter Lawrey 11.03.2011, 09:48
quelle
3

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)

    
Stas Kurilin 11.03.2011 09:22
quelle
0

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.

    
Stephen C 11.03.2011 09:46
quelle

Tags und Links