【发布时间】:2018-08-21 06:54:41
【问题描述】:
我使用 Eclipse 作为 IDE,并有以下代码
List<Long> countList = new ArrayList<>();
Long count = (countList != null && !countList.isEmpty()) ? countList.get(0) : 0;
在 Eclipse 中,else 的自动装箱应该会产生编译错误,但事实并非如此。我也尝试过最新的 eclipse 版本 Photon,它仍然是一样的。
但是当我使用 Jenkins 构建项目时,它会抛出正确的编译错误。有人可以建议,如何解决这个问题?
我尝试了设置Preferences -> Errors/Warnings -> Boxing and unboxing conversions 并将默认行为从警告变为错误。但这也会导致其他不必要的错误。
有没有办法通过 eclipse 设置来解决这个问题?
【问题讨论】:
-
为什么这是编译器错误?
javac是否有错误消息? -
什么样的“不必要的错误”?你在这里留下了很多的细节。
-
对于 else 语句,您不能将整数 0 分配给 Long。它必须是 0L。在 InteliJ 和 javac 中,这是一个编译错误。
标签: java eclipse language-lawyer conditional-operator autoboxing