Java 在Eclipse调试器中等待时,无法对非静态字段错误进行静态引用
有时,当我试图观察内部类(包括匿名类)中的变量时,我无法做到这一点 调试器说Java 在Eclipse调试器中等待时,无法对非静态字段错误进行静态引用,java,eclipse,debugging,Java,Eclipse,Debugging,有时,当我试图观察内部类(包括匿名类)中的变量时,我无法做到这一点 调试器说 <error(s)_during_the_evaluation> 作为一个细节 变量不是静态的,引用也不是静态的 如果在变量名前面加上MyClass.this.,则开始显示 如果我在代码中使用myvariable log.info("var = {}", myvariable) 它也起作用 所以问题只存在于Eclipse调试器:它无法区分封闭类变量和静态类变量 如何修复 更新 语言是Java Java可
<error(s)_during_the_evaluation>
作为一个细节
变量不是静态的,引用也不是静态的
如果在变量名前面加上MyClass.this.
,则开始显示
如果我在代码中使用myvariable
log.info("var = {}", myvariable)
它也起作用
所以问题只存在于Eclipse调试器:它无法区分封闭类变量和静态类变量
如何修复
更新
语言是Java
Java可能是任何一种
日食是开普勒现象,也可能是任何一种
代码如下:
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();
}
}
证明:
我可以看到您添加了一个“watch expression”,也许您希望将您的表达式替换为
this.myvariable
没有足够的细节。您需要将其减少到再现问题的最小可能示例,以便其他人可以引发相同的行为。Eclipse的哪个版本?和/或向我们展示源代码以及这是什么语言。
this.myvariable
表示不同的含义;如果Try\u Debug\u 01,则示例有效。这个.myvariable
可以告诉我在变量选项卡上是否可见吗?
this.myvariable