Extract information about current method in Java
September 11, 2016 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.