Extract information about the current method in Java
October 7, 2017 Leave a comment
Say you wish to get some simple information about the currently running function in your Java program. The stacktrace of the current thread can help you find that.
Here’s a simple snippet to print the class name, the file name, the line number and the method name:
public class Person
{
public void sayHello(int homeManyTimes)
{
for (int i = 0; i < homeManyTimes; i++)
{
System.out.println("Hello!");
}
StackTraceElement[] stackTrace = Thread.currentThread().getStackTrace();
StackTraceElement currentStackTrance = stackTrace[1];
System.out.println(currentStackTrance.getClassName());
System.out.println(currentStackTrance.getFileName());
System.out.println(currentStackTrance.getLineNumber());
System.out.println(currentStackTrance.getMethodName());
}
}
If you call the sayHello function…
Person person = new Person(); person.sayHello(10);
…then you might get an output similar to the following:
com.mycompany.domainobjects.Person
Person.java
20
sayHello
Note that the class name will be the fully qualified name including the namespace.
View all posts related to Java here.