Car*_*ter 18 java static-import
我的代码在Eclipse中编译得很好,但是当我尝试从命令行编译时(通过我们基于ruby的构建器系统),我收到以下错误消息:
static import only from classes and interfaces
Run Code Online (Sandbox Code Playgroud)
建议不允许静态导入公共静态字段.我应该寻找什么来帮助诊断这个问题?我该如何解决?
更新: per @Ted的请求,引用文件中的常量声明:
public static final String NULL = "<NULL>";
Run Code Online (Sandbox Code Playgroud)
和引用文件中的(bowdlerized)引用:
import static my.path.MyClass.NULL;
Run Code Online (Sandbox Code Playgroud)
Ted*_*opp 14
我的猜测是Eclipse和buildr使用不同的Java编译器版本或不同的编译器标志.Java 7编译器中存在一个错误(错误ID:715906),当您静态导入特定字段时会生成此错误.解决方法是使用通配符静态导入.所以代替:
import static pkg.Class.staticField;
Run Code Online (Sandbox Code Playgroud)
做这个:
import static pkg.Class.*;
Run Code Online (Sandbox Code Playgroud)
迟到的回答,但我得到了一个类似的问题,并想出来了.我会发布以防万一找到此页面的其他人...
在一次大型合并和重构之后,我偶然将一个测试类放入src/main/java而不是src/test/java中,我遇到了类似的错误.由于JUnit依赖项是scope = tests,因此它在纯maven中不起作用.也许你有同样的问题
小智 6
我也有这个错误,我的问题原来是我的测试源文件中 junit 4 包的任性静态导入。
我有以下几点:
import static org.junit.Assert.fail;
import static org.junit.jupiter.api.Assertions.assertArrayEquals;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.junit.jupiter.api.Assertions.assertTimeout;
Run Code Online (Sandbox Code Playgroud)
我删除了import static org.junit.Assert.fail;(首先不知道我是如何设法将其放入那里的),现在一切正常。
| 归档时间: |
|
| 查看次数: |
16574 次 |
| 最近记录: |