[英]intelliJ cannot find a specific method
我在以下代碼中遇到編譯錯誤,我不知道如何修復。
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)
}
}
但我明白了
錯誤:(8, 14) java: 找不到符號
符號:方法 readString(java.nio.file.Path)
位置:類 java.nio.file.Files
有很多事情需要注意。
java.nio.file.Files
readString(Path)
。 如果我要嘗試size(Path)
( java.nio.file.Files
另一種方法),它可以工作此代碼在 intelliJ 中不起作用,但在 eclipse 中起作用
如果我在 intelliJ 中創建了一個新項目,但不在我從 github 克隆的當前 Maven 項目中,則此代碼有效
Test.java
正如 Axel 的回答所指出的,問題確實與 Java 版本有關,但與 SDK 或語言級別無關。
通過轉到文件 > 設置 > 構建 > 編譯器 > Java 編譯器來解決它。 然后,我將 Project Bytecode Version 更改為 11,並刪除了設置為 10 的 Per Module Bytecode Version 條目。
Files.readString(Path)
是在 Java 11 中引入的。看起來你的安裝仍然在 Java 8 上。
首先通過在項目設置/項目下設置正確的 SDK 和語言級別來確保您的項目使用 Java 11。
如果這不起作用,請確保您已安裝 IntelliJ 的 JDK 11 版本。 你可以當你的小角度向下點擊下載按鈕的右側的IntelliJ下載頁面上的JDK 8和JDK版本11之間選擇的IntelliJ下載頁面。
與 Lindstorm 和 Axel 的回答相同,問題是由於您的 Java 版本配置錯誤。 您可能使用與 JDK 11 不同的源/目標版本來構建源代碼(至少對於 Files::readString)。 我使用上述方法解決了這個問題。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<source>11</source>
<target>11</target>
</configuration>
</plugin>
我在maven插件maven-compiler-plugin
了configuration
部分。 如果您沒有這部分(例如您使用 spring boot run),請將其添加到您的 pom.xml plugins
區域。
在更改@Lindstorm 提到的項目字節碼版本后,intelliJ 在編譯時仍然顯示錯誤。 我做了以下操作以確保選擇了正確的(修改后的)配置。
.idea
文件。這將確保 IntelliJ 選擇將項目字節碼版本更改為 JDK 11。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.