不幸的是,我无法发布完整的代码,也无法用更小的样本重现它。我希望这个解释就足够了。
如果我尝试在断点处从“var”检索值,我总是会收到以下消息:
Evaluation failed. Reason(s):
Unable to retrieve the correct enclosing instance of 'this'
变量视图的前 2 个级别如下所示:
this MENU$1 (id=291)
this$0 MENU (id=292)
this$0 MENU (id=292)
无论出于何种原因,有 2 个 this$0 条目具有相同的 id。
我可以在变量视图中查看 var 的值,但我无法在显示或表达式视图中或直接在代码中执行“var”、“this.var”或任何涉及 var 的内容。
public class MENU{
private String var;
...
private void menup() {
this.main("menup",
new MainProcess() {
public void run() {
System.out.println(var); // breakpoint here
...
}
}
);
}
...
}
MainProcess.run() 的调用流程有点奇怪,我只能提供这个堆栈跟踪:
MENU$1.run() line: 173
MENU(Application).mainRun(Application$Main) line: 2688
MENU(Application).main() line: 2529
MENU(MainApplication).runApplication() line: 54
ApplicationHandler.dxfr(MainApplication, Record) line: 256
ApplicationSession$ApplicationRunner.run() line: 138
Thread.run() line: 662 [local variables unavailable]
编辑:
显示视图中的执行结果:
this 这实际上似乎成功返回 this.toString() this.var 无法解析或不是字段 var 无法检索“this”的正确封闭实例 MENU.this.var 无法检索“this”的正确封闭实例
代码在 JBoss 4 应用服务器中运行。