【问题标题】:assertNotEquals static import causing compile errorassertNotEquals 静态导入导致编译错误
【发布时间】: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 方法的那一行?

标签: java eclipse ant junit


【解决方案1】:

您使用的是 Junit 4.4。 AssertNotEquals 直到 4.11 才添加

JUnit 4.11 release Notes

如果您更新到最新的 JUnit jar。编译器错误应该消失。 Eclipse 可能正在使用它自己的内置版本,它具有最新的方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-27
    • 2013-04-29
    • 2020-07-05
    • 1970-01-01
    • 1970-01-01
    • 2015-06-29
    • 1970-01-01
    • 2019-06-22
    相关资源
    最近更新 更多