在我的代码中,我试图在表达式窗口中输出
src
的值。
public void doIt() {
String src = "test";
System.out.println(src);
}
在日食中。我在第 3 行设置了一个断点,然后打开“表达式”窗口。
我添加一个表达式
src
来评估,我得到
在我多年的 Java 调试过程中,我已经使用过表达式功能无数次了。为什么现在会发生这种情况?
我最近刚刚开始使用 Eclipse Juno.. 与 Indigo。他们改变了表达式的工作方式吗?
如果您的代码使用任何泛型,您可能需要检查此错误:
https://bugs.eclipse.org/bugs/show_bug.cgi?id=341232
出现在 Eclipse 4.2 之前的所有版本中。简而言之,某些泛型表达式会导致 Eclipse 在任何计算上完全失败(请参阅此示例:https://bugs.eclipse.org/bugs/attachment.cgi?id=224760)。不确定您的代码是否使用任何泛型,但如果是的话,可能就是这样。请注意,在类中的某个地方拥有一个麻烦的泛型就足够了,而在方法中则不需要。
我只是花了很多时间来弄清楚,如果您要创建一个包“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 上重现。
检查您是否已更新 Eclipse 版本,看起来此问题已在 Eclipse 3.3 中修复
我的 Eclipse 版本是 3.8.2,如果我计算第 2 行的表达式,那么我也会收到相同的错误,但在第 3 行它的计算正确。
我遇到了同样的问题,我删除了代码中的通用方法。它对我有用。
(假设您正在编译 1.5+ 代码)我遇到了同样的问题,这是我修复它的方法:
根据https://stackoverflow.com/a/21763943/733092,当类包含像
这样的泛型方法时,就会发生这种情况public <T extends something> T myMethod() {};
Eclipse 说我有编译错误。尽管 Maven 构建良好且项目运行。我必须去属性| Java 构建路径 |图书馆 |添加外部 JAR... |添加jar eclipse想要解决错误。错误被删除后,我就可以计算表达式了。
Eclipse 4.27