使用下面提供的代码,在o.get()上输入“the type Long is not visible”(没有进一步的信息)时,我得到了Eclipse错误。
我安装了最新的JDK (Java "11.0.1“2018- 10 -16,在Eclipse 2018-09 (4.9.0)中使用),只有当我将项目JDK遵从性设置为9或10时,才会出现错误。当JDK遵从性设置为1.8或更低时,错误不会发生。
import java.util.Optional;
public class TestLongNotVisible {
Optional<Long> o;
void a() {
long x = o.get();
}
}我正在寻找解决这个问题的方法。如果任何人在这个问题上有经验或知道最可能的原因,请提前感谢!
发布于 2018-12-28 02:32:18
默认情况下,我的项目被设置为具有许多依赖项的Maven项目。Lombok依赖项导致了这个问题的发生,因为它在编译之前注入代码。如果没有Lombok依赖,一切都会按预期运行。任何以Lombok为依赖项的项目都会出现这个问题,即使没有使用Lombok特性。
Lombok还不支持JDK 10或更高版本。
如果您遇到了这个问题,或者遇到了类似的错误(例如类型长时间不可见),请检查您的设置是否存在可能的代码注入器,例如Lombok与编译器不兼容。
https://stackoverflow.com/questions/53947833
复制相似问题