Hello有没有办法知道函数的调用者类名,特别是Java-GWT应用程序?
答案 0 :(得分:4)
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方法直接调用的)