【发布时间】:2015-11-18 09:37:31
【问题描述】:
我有一个文件Foo.java,它编译时没有错误。但是当我添加单行时
import static org.junit.Assert.assertNotEquals;
这会导致我的 ant 构建出现以下错误:
compileTests:
[javac] Compiling 27 source files to C:\example\bin
[javac] C:\example\src\Foo.java:7: error: cannot find symbol
[javac] import static org.junit.Assert.assertNotEquals;
[javac] ^
[javac] symbol: static assertNotEquals
[javac] location: class
[javac] 1 error
我正在使用 JUnit 4.4。 junit-4.4.jar 包含在classpath 中,用于javac 任务。
我尝试使用标志-Dbuild.compiler=javac1.7 和-Dbuild.compiler=javac1.8 运行不同的编译器版本,但这没有区别。我仍然得到完全相同的错误。
assertNotEquals 是唯一来自 Assert 的静态导入导致此错误。
我已经看过这个帖子Java static import causing compile error. Probable compiler bug?
我尝试自行导入Assert,并在每个断言语句前面加上Assert.,就像这篇文章建议的那样。我得到了同样的错误,这次是在Assert.assertNotEquals()而不是导入语句的方法调用中。
但是,导入成功编译并在 Eclipse 上运行。
有人对此原因有任何想法吗?我想深入了解这一点,而不必实施解决方案。
【问题讨论】:
-
我们能看到你试图调用它的代码行吗?你实际调用 assert 方法的那一行?