智能找不到特定的方法

Lin*_*orm 3 java intellij-idea

我在以下代码中遇到了编译错误,但我不知道如何解决。

 public class Test throws IOException{
      public static void main(String[] args) {
           String path = "document.txt";
           File file = new File(path);
           Files.readString(file.toPath()); //cannot find symbol method readString(java.nio.file.Path)
      }
 }
Run Code Online (Sandbox Code Playgroud)

但我明白了

错误:(
8、14 )Java:找不到符号符号:方法readString(java.nio.file.Path)
位置:类java.nio.file.Files

有很多事情要注意。

  • 这仅发生在readString(Path)java.nio.file.Files。如果我要尝试size(Path)(中的另一种方法java.nio.file.Files),它可以工作
  • 此代码在intelliJ中不起作用,但在eclipse中起作用

  • 如果我在intelliJ中创建了一个新项目,但在从github克隆的当前Maven项目中却没有,则此代码有效

在这里尝试了所有建议包括:

  • 生成>重建项目
  • 仅重新编译 Test.java
  • 文件>使缓存无效
  • 检查/ src文件夹是否标记为源文件夹
  • 重新导入Maven依赖项

Axe*_*xel 7

Files.readString(Path) 是在 Java 11 中引入的。您的安装似乎仍在 Java 8 上。

首先通过在项目设置/项目下设置正确的 SDK 和语言级别来确保您的项目使用 Java 11。

如果这不起作用,请确保您已安装 IntelliJ 的 JDK 11 版本。你可以当你的小角度向下点击下载按钮的右侧的IntelliJ下载页面上的JDK 8和JDK版本11之间选择的IntelliJ下载页面


Lin*_*orm 6

正如Axel的回答所指出的那样,问题确实与Java版本有关,但与SDK或语言级别无关。

解决该问题的方法是转到文件>设置>构建>编译器> Java编译器。然后,我将项目字节码版本更改为11,并删除了设置为10的“每个模块字节码版本”条目。