如何知道函数的调用者类

时间:2012-01-23 09:15:57

标签: java gwt

Hello有没有办法知道函数的调用者类名,特别是Java-GWT应用程序?

2 个答案:

答案 0 :(得分:4)

GWT中不支持

Thread.currentThread(请记住,java代码被编译为javascript),因此这可能是以下重复:

How do you find out the caller function in JavaScript?

在GWT中,你只需编写一个jsni包装器:

public static native void whosMyCaller() /*-{
    $wnd.alert(arguments.callee.caller.toString());
}-*/;

答案 1 :(得分:0)

在GWT中实际上是不可能的,因为在生产模式下,代码通过内嵌和删除无法访问的代码进行了大量优化。例如。在编译模式下,大多数函数不属于任何类,因为GWT认为类定义是多余的。从理论上讲,可以找到调用者类(如果你试图分析编译报告或者是通过JSNI),但是由于内联优化你会得到很多奇怪的结果(例如,即使你的函数只在某些函数中被调用)特定的类,在编译模式下,您可能会发现它是从入口点onLoad方法直接调用的)