Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Eclipse调试器中等待时,无法对非静态字段错误进行静态引用_Java_Eclipse_Debugging - Fatal编程技术网

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