IntelliJ: cannot find java.util.Optional



在IntelliJ的一个新项目中,我已经设置了Java 8 JRE/JDK和语言级别8.0。

但是由于某些原因,IDE无法找到java.util.Optional。项目编译和工作正常(从IDE中也是如此),但代码完成不工作。

任何想法?

我终于想通了。无论出于何种原因,在Editor、General和Auto Import下的排除项中有一个关于java.util.Optional的条目。

去掉它就成功了。不知道它是怎么或者为什么会在那里。听起来不像是我想做的事。

愚蠢的IntelliJ。

我有一个SpringBoot项目,它工作得很好。然后,第二天,当我想运行它时,我得到了这个错误:Caused by: java.lang.Error: Unresolved compilation problem: The type java.util.Optional cannot be resolved. It is indirectly referenced from required .class files 没有改变任何东西!

    我清除了IntelliJ缓存。

虽然它是一个maven项目,但它已经使用了JDK8,

  • 我已经改变了项目设置,并说(再次)使用JDK8,
  • Maven重新导入,清理项目,构建->重建项目,它又神奇地工作了

我在ubuntu中也遇到过类似的问题。对我来说,问题是我使用JDK1.7,当我把它改成JDK1.8时,一切都工作得很好。

现在,这是有意义的,因为可选是在JDK1.8中引入的,在此之前,这个概念只存在于Guava中:http://onelineatatime.io/optional-guava-and-java-8/

在IntelliJ 2017.2.7中遇到了同样的问题,并像这样解决了它:Project Structure->Modules->Module SDK,然后改成1.8

我还首先将Java编译器设置为8,项目结构->项目->项目SDK和项目语言级别也设置为8,但没有成功。最后,我描述的步骤最终修复了它。

我最近遇到了这种情况。这个问题与我的项目SDK设置有关。不需要清除任何缓存

这个问题显示我的项目SDK设置为1.8(1.8.0_202)。该问题已通过将其更改为11(11.0.6)修复。我还确认,当我切换回1.8时,这个问题再次出现。

java 8中一些可选类的函数不支持,如isEmpty, ifPresentOrElse, or, stream, orElseThrow。你应该检查你是否使用它们。如果您想使用这些函数,可以使用java 11。

相关内容

最新更新