在假设我不知道方法名的前提下.我怎么能获取到当前执行方法的名称.

解决方案 »

  1.   

    自己解决了System.out.println(new Throwable().getStackTrace()[0].getMethodName());
      

  2.   


    public static void main(String[] arg)
    {
         try {
        Test t = new Test();
        t.Log();
       } catch (Exception e) {
        e.printStackTrace();
       } 
    }
    public void Log()
    {
        System.out.println("方法名       "+Thread.currentThread().getStackTrace()[1].getMethodName());
         System.out.println("类名    "+Thread.currentThread().getStackTrace()[1].getClassName());
         System.out.println("文件名   " + Thread.currentThread().getStackTrace()[1].getFileName());
         System.out.println("所在的行数 "+Thread.currentThread().getStackTrace()[1].getLineNumber());
    }结果:---------------------------------------------------------------------------------------方法名          Log
    类名             com.sh.test.Test
    文件名          Test.java
    所在的行数   19
      

  3.   


    转:http://hi.baidu.com/shvo/blog/item/5ef808f9f9c0e602d8f9fd3d.html
      

  4.   

    除了LZ采用的异常的堆栈跟踪,还可以用线程堆栈跟踪,做法一样的
    System.out.println(Thread.currentThread().getStackTrace()[0].getMethodName());