带有JDK Compliance 9和10的Eclipse中的“ Long类型不可见”

时间:2018-12-27 16:10:31

标签: java eclipse

使用下面提供的代码,在o.get()上键入“ Long类型不可见”(没有更多信息)时,我得到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();
    }

}

我正在寻找解决此问题的方法。如果任何人有此问题的经验或最可能的原因,请提前谢谢您!

1 个答案:

答案 0 :(得分:0)

默认情况下,我的项目被设置为具有多个依赖项的Maven项目。 Lombok依赖关系导致此问题的发生,因为它在编译之前会注入代码。没有Lombok依赖性,一切都会按预期进行。对于任何以Lombok作为依赖项的项目,即使没有使用Lombok功能,也会出现问题。

Lombok还不支持JDK 10或更高版本。

如果您遇到此问题,或者类似的问题,并且本应不可能发生的错误(例如Long的类型不可见),请检查您的设置是否有可能的代码注入器,例如Lombok与编译器不兼容。