做一个全局的Method Stack.在函数被调用是push,在函数结束前pop,在log时peek.
public class MethodStack
{
   private static java.util.Stack stack;
   public void push(String strMethodName)
   {
//      synchronized (stack)
//      {
         stack.push(strMethodName);
//      }
   }
   public static void push(String strMethodName)
   {
      
   }
   public static String pop()
   {
      
   }
}
但是,事实上碰到多线程,就中刀了。但在单线程的程序里还是工作的。推荐使用Jbuilder

解决方案 »

  1.   

    对不起,楼上的写得太快,有点错误。三个函数分别应该为push,peek,pop.然后都应该是static的。
    我相信,为了handle多线程,每个线程应该有一个自己的stack.
    public class MethodStack
    {
       private Stack stack = new Stack();   /* key = thread     value = MethodStack instance */
       private static HashMap map = new HashMap();
       public static MethodStack getInstance(Thread thread)
       {
          synchronized (map)
          {
             MethodStack objMethodStack = map.get(thread);
             if (objMethodStack == null)
             {
                objMethodStack = new MethodStack();
                map.put(thread, objMethodStack);
             }
             return objMethodStack;
          }
       }
       public static void removeInstance(Thread thread)
       {
          synchronized (map)
          {
             map.remove(thread);
          }
       }   public void push(String strMethodName)
       {
          
       }
       public String peek()
       {
          
       }
       public String pop()
       {
          
       }
    }