Zitat von
Der_Unwissende:
@Chewie, Eine Frage zu deiner Funktion isDebugEnabled(), ist dass eine statische final die eine Konstante zurückgibt? Da würde ich dich dann nämlich auch gleich fragen, ob du zufällig weißt, ob Java die dann schon zum bedingten Kompilieren benutzen kann? Also wenn man direkt eine Konstante nimmt ist es ja klar, aber mit einer Methode (sollte zwar, dumm ist Java ja nicht...)
Du denkst zu weit
isDebugEnabled() ist eine Methode der Commons Logging
API von Apache, was ein Wrapper für verschiedene Logging-Frameworks darstellt. Die Logging-Konfiguration wird aber erst zur Laufzeit ermittelt, sodass das ein gewöhnlicher Methodenaufruf darstellt. In das Kompilat kommt die Abfrage also rein, man kann sie natürlich auch weg lassen, da log.debug() nur was schreibt, wenn das Level auf DEBUG steht. Von den Entwicklern wird die vorherhige Prüfung dann empfohlen, wenn sie im Vergleich zum Konstruieren der Logging-Ausagbe wesentlich weniger aufwändig ist. Ich schreib diese Abfrage aber grundsätzlich immer mit dazu, zumindest in nicht-zeitkritischen Sachen, weil man so den Logging-Aufruf weniger leicht übersieht.