有时候,当我试图在内部类中观察变量时,包括匿名,我无法做到。
调试器说
<error(s)_during_the_evaluation>
和文字
Cannot make a static reference to the non-static field myvariable
详细信息。
变量不是静态的,引用也不是静态的。
如果在MyClass.this.
前加上变量名,则会开始显示。
如果我在代码中使用myvariable
log.info("var = {}", myvariable)
它也有效。
所以问题只在于Eclipse调试器:它不能将封闭的类变量与静态类变量区分开来。
如何解决?
更新
语言是Java。
Java可能是任何。
Eclipse是Kepler,也可能是任何。
代码如下:
public class Try_Debug_01 {
private static final Logger log = LoggerFactory.getLogger(Try_Debug_01.class);
private int myvariable = 12;
private Object object1 = new Object() {
{
log.info("var = {}", myvariable);
new Object() {
{
log.info("var = {}", myvariable);
}
};
}
};
public static void main(String[] args) {
new Try_Debug_01();
}
}
证明:
答案 0 :(得分:0)
我可以看到你添加一个“观察表达”,也许你想用
替换你的表达this.myvariable