残念ながら、完全なコードを投稿することはできず、まだ小さなサンプルでそれを再現することはできませんでした。この説明で十分だと思います。
ブレークポイントで「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)
何らかの理由で、同じIDを持つthis$0エントリが2つあります。
変数ビューで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'の正しい囲んでいるインスタンスを取得できません
コードはJBoss4アプリケーションサーバーで実行されています。