gpt4 book ai didi

java - assertNotEquals 静态导入导致编译错误

转载 作者:搜寻专家 更新时间:2023-11-01 02:06:18 27 4
gpt4 key购买 nike

我有一个文件 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 包含在 javac 任务的 classpath 中。

我已经尝试使用标志 -Dbuild.compiler=javac1.7-Dbuild.compiler=javac1.8 运行不同的编译器版本,但没有区别。我仍然得到完全相同的错误。

assertNotEquals 是唯一导致此错误的 Assert 静态导入。

我已经看过这篇文章Java static import causing compile error. Probable compiler bug?我尝试单独导入 Assert 并在每个 assert 语句前添加 Assert. 就像这篇文章所建议的那样。我遇到了同样的错误,这次是在 Assert.assertNotEquals() 而不是 import 语句的方法调用处。

然而,导入成功编译并在 Eclipse 上运行。

有人知道这是什么原因吗?我想深入了解这个问题,而不必实现变通解决方案。

最佳答案

您正在使用 Junit 4.4。 AssertNotEquals 直到 4.11 才添加

JUnit 4.11 release Notes

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

关于java - assertNotEquals 静态导入导致编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32191185/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com