Java 获取调用方法的调用类及调用类的上级调用方法或类

StackTraceElement stack[] = Thread.currentThread().getStackTrace();
					String callName=stack[2].getClassName();
					if (!callName.endsWith(
							"SelectDefBindingContainer")){
						
					}
                System.out.println("called by "+ste.getClassName()+"."+ste.getMethodName()+"/"+ste.getFileName());
            }
           }   


import java.sql.SQLException; 


  class Test01{
	static  void fun(){
		StackTraceElement stack[] = Thread.currentThread().getStackTrace();  
        for (StackTraceElement ste:stack){  
        	System.out.println(ste.getClassName());
        } 
	  }
  }
public class Test { 
    public static void main(String[] args) throws SQLException { 
    	 Test01.fun();
    } 
}

java.lang.Thread  最下层
Test01  上一层
Test  上一层的上一层
......


你可能感兴趣的:(Java,Java编程思想)