动态打印完全限定的类名以及方法名称

时间:2014-01-29 08:48:30

标签: java

我想要输出com.iland.Action.LoginAction.doLogin()

代码应对任何类

有效

例如

package com.iland.Action

Class LoginAction{

  void doLogin()
  {
      System.out.println("");//what contens should be printed in sop
  }
}

我想动态打印完全限定的类名和正在执行的方法名。

3 个答案:

答案 0 :(得分:4)

这是一个可以帮助您的代码片段。

StackTraceElement trace = new Throwable().getStackTrace()[0];
trace.getMethodName(); // returns method name
trace.getClassName(); // returns class name

答案 1 :(得分:0)

您可以在函数体内使用此代码:

String Name=this.getClass().toString();
String fullName=Name.substring(Name.lastIndexOf(" ")+1);
System.out.println(fullName);// fully qualified class name.
System.out.println(fullName.substring(0,fullName.lastIndexOf(".")));// package name
System.out.println(fullName+new Throwable().getStackTrace()[0].getMethodName());// fully qualified method name

有关getStackTrace的更多信息,请参阅this

答案 2 :(得分:0)

它将显示包含方法名称

的类名
  System.out.println(new Throwable().getStackTrace()[0].getClassName());//  class name
        System.out.println(new Throwable().getStackTrace()[0].getMethodName());// method name
        StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace();
        System.out.println(stackTraceElements[1].getClassName());//class name
        System.out.println(stackTraceElements[1].getMethodName());//method name