I am looking for a "self" reference to the current class in JAVA in a static context manner like in PHP Scope Resolution Operator?
Solution: Break out of scope? BEWARE, this is compared to a static definition really slow (by factor 300):
static Logger LOG = LoggerFactory.getLogger(new RuntimeException().getStackTrace()[0].getClassName());
The old-fashioned way would be:
static Logger LOG = LoggerFactory.getLogger(<Classname>.class.getName());
Are there any alternatives? I'm looking for a way to put the logger definition in an abstract class. The logger should determine the class it's being called from by itself.
Static Method Static methods are the methods in Java that can be called without creating an object of class. They are referenced by the class name itself or reference to the Object of that class.
The term static (in Java) means that the variable belongs to a class, not an instance or a method call. The thing here that is labelled as static is a variable. The distinction between a variable, and the value contained in a variable is critical. An object reference cannot be static.
In Java, it is possible to create a method inside a class that can be used by itself, without reference to an instance of the class. This type of method is known as the static method. To create such a method, we've to precede its declaration with the keyword static.
Static variables can be accessed by calling with the class name ClassName. VariableName. When declaring class variables as public static final, then variable names (constants) are all in upper case. If the static variables are not public and final, the naming syntax is the same as instance and local variables.
The slightly faster
static final Logger LOG = LoggerFactory.getLogger(
Thread.currentThread().getStackTrace()[0].getClassName());
If you do this 1000 times it will take 36 ms using Class.class.getName() and 60 ms doing it this way. Perhaps its not worth worrying about too much. ;)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With