为什么我要继续“评估必须包含一个表达式或一组格式良好的语句”?
在我的代码中,我试图在表达式窗口中输出src
的值。
public void doIt() { String src = "test"; System.out.println(src); }
在Eclipse中。 我在第3行设置断点,然后打开“表达式”窗口。
我添加了一个表达式src
来评估,我得到了
我使用了表达式function…在我多年的Java调试中使用了很多次。为什么现在会发生这种情况?
我刚刚开始使用Eclipse Juno ..与Indigo。 他们改变了表达式的工作方式吗?
如果您的代码使用任何generics,您可能需要检查此错误:
https://bugs.eclipse.org/bugs/show_bug.cgi?id=341232
在所有版本的Eclipse中发生,最高可达4.2。 简而言之,某些generics表达式会导致Eclipse在任何评估时完全失败(请参阅此示例: https : //bugs.eclipse.org/bugs/attachment.cgi?id = 22467 )。 不确定您的代码是否使用任何generics,但如果是这样,可能就是这样。 请注意,在您的课程中某处有一个麻烦的generics就足够了,在您的方法中没有必要。
检查您是否有更新版本的Eclipse,看起来这个问题已在Eclipse 3.3中修复
我的Eclipse版本是3.8.2,如果我在第2行评估表达式,那么我也收到相同的错误,但在第3行它正确评估。
我花了大量的时间来弄清楚如果你要创建一个包“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 } }); }
这个bug可以复制到当前的Eclipse Neon 4.7。
我遇到了同样的问题,我在代码中删除了一个通用方法。 它对我有用。
(假设你正在编译1.5+代码)我有同样的问题,这就是我做的修复它:
- 确保您的Java编译器版本是1.5+
- 修复与该类相关的所有语法/类相关错误。 我的类路径中有许多缺少的依赖项。
- 确保该特定项目的JRE也是1.5+