在Eclipse调试器中观察时,无法对非静态字段错误进行静态引用

时间:2013-12-04 16:02:09

标签: java eclipse debugging

有时候,当我试图在内部类中观察变量时,包括匿名,我无法做到。

调试器说

<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();
    }

}

证明:

enter image description here

1 个答案:

答案 0 :(得分:0)

我可以看到你添加一个“观察表达”,也许你想用

替换你的表达
this.myvariable