日期:2014-05-20  浏览次数:20620 次

被调用对象的方法内部,如何"动态"获得调用者(调用对象)的引用。
被调用对象的方法内部,如何"动态"获得调用者(调用对象)的引用。

如题:

Java code
class A{
  f1(){
    B.f2()
  }
}

class B{
  static f2(){
  //这里如何动态获得 调用者的引用。
  }
}


注意 “调用者”可能是实现某接口的 任何类的实例。
我想问的是:不进行任何参数传递情况下引用 “调用者”

类似 Thread.currentThread() 可以获得“调用线程”的引用。

------解决方案--------------------
Java code
 public static String getCaller(){
int i;
StackTraceElement stack[] = (new Throwable()).getStackTrace();
for (i=0; i < stack.length; i++) {
StackTraceElement ste=stack[i];
System.out.println(ste.getClassName()+"."+ste.getMethodName()+"(...)");
System.out.println(i+"--"+ste.getMethodName());
System.out.println(i+"--"+ste.getFileName());
System.out.println(i+"--"+ste.getLineNumber());
}
}

------解决方案--------------------
只知道JAVA里 楼主这种要求 都不是用JAVA语言写的