为什么我一直收到“评估必须包含表达式或格式正确的语句块”?

2022-09-02 04:05:30

在我的代码中,我尝试在表达式窗口中输出 的值。src

public void doIt() {
    String src = "test";
    System.out.println(src);
}

在日食中。我在第 3 行设置了一个断点,然后打开“表达式”窗口。

我添加一个表达式来计算,我得到srcEvaluations must contain either an expression or a block of well-formed statements

我使用了表达式功能...在我多年的Java调试中,无数次。为什么现在会发生这种情况?

我最近才开始使用Eclipse Juno。vs 靛蓝。他们是否改变了表达式的工作方式?


答案 1

如果您的代码使用任何泛型,则可能需要检查此错误:

https://bugs.eclipse.org/bugs/show_bug.cgi?id=341232

在 Eclipse 至 4.2 的所有版本中出现。简而言之,某些泛型表达式会导致 Eclipse 在任何评估中完全失败(请参阅此示例:https://bugs.eclipse.org/bugs/attachment.cgi?id=224760)。不确定您的代码是否使用任何泛型,但如果是这样,则可能是这样。请注意,在类中的某个地方有一个麻烦的泛型就足够了,在你的方法中不是必需的。


答案 2

我只是花了大量的时间来弄清楚,如果你要创建一个包“Foo”,在这个包里面,你会创建一个名为“Foo”的类,就像这样:

package Foo;

public class Foo{
    public Foo () {};
}

在程序中首次使用此类之后,您将无法再使用表达式:

import Foo.Foo; //this is the devil i think

public static void main(String[] args){
    EventQueue.invokeLater(new Runnable(){
        public void run(){
            //debug expressions works fine
            Foo tmp = new Foo();
            //debug expressions wouldn't work anymore
        }
    });
}

这个错误可以恢复到当前的Eclipse Neon 4.7。