Skip to main content

Get current executing method name in Java

//Get method name using Java.lang.Class.getEnclosingMethod()

    public static void getMethodNameUsingClassInstance() {
        String methodNameUsingClassInstance =
            new Object() {}.getClass().getEnclosingMethod().getName();
        System.out.println("Current Method Execution Name Using Class Instance - " +

//Get method name using StackTraceElement.getMethodName()

    public static void getMethodNameUsingStackTraceElement() {
        StackTraceElement stackTraceElements[] = (new Throwable()).getStackTrace();
        System.out.println("Current Method Execution Name Using StackTraceElement - " +

//Get method name using Thread.currentThread().getStackTrace()

    public static void getMethodNameUsingCurrentThread() {
        System.out.println("Current Method Execution Name using Current Thread - " +


Popular posts from this blog

Create Runnable Jar - Eclipse Options

When exporting to a Runnable Jar, there are three options in eclipse Helios. Extract required libraries into JARPackage required libraries into JARCopy required libraries into sub folder next to JAR. What are differences : Extract required libraries into JAR - Extracts the actual .class files from the libraries your app uses and puts those .class files inside the runnable JAR. So, the runnable JAR will not only contain the .class files of your application, but also the .class files of all the libraries your application uses. Package required libraries into JAR - Puts the actual JAR files of the libraries into your runnable JAR. Normally, a JAR file within a JAR file cannot be loaded by the JVM. But Eclipse adds special classes to the runnable JAR to make this possible. Copy required libraries into sub folder next to JAR - Keeps the library JARs completely separate from the runnable JAR, so the runnable JAR will only contain the .class files of your application. Option #2 is convenient be…

Java toString()

public String toString() { StringBuilder builder = new StringBuilder();
try { Class e = Class.forName(this.getClass().getName()); builder.append(this.getClass().getSimpleName() + " [ ").append( System.getProperty("line.separator"));
while (e.getSuperclass() != null) { Field[] aClassFields = e.getDeclaredFields(); Field[] arg3 = aClassFields; int arg4 = aClassFields.length;
for (int arg5 = 0; arg5 < arg4; ++arg5) { Field field = arg3[arg5]; field.setAccessible(true); builder.append("\t") .append(field.getName()) .append(" = ") .append(field.getName() .matches("(?i:.*password.*)") ? "<password_field>" : field.get(this)).append(",") .append(System.getProperty("line.separator")); }
e = e.getSuperclass(); }
builder.append("]"); } catch (Exception arg7) { arg7.printStackTrace(); }
return builder.toString(); }