IntelliJ IDEA - Get 无法解析"字符串"中的方法"isBlank",但在 STS 中工作正常



我最近将我的Java项目从Spring Tools IDE转移到了IntelliJ,但我遇到了一个STS中没有的错误:"无法解析"String"中的方法"isBlank"更重要的是,在Spring Tools中测试运行成功。我尝试重建pom文件,但仍然有错误。

我使用的代码部分是:

if (uploadedPDFName == null || uploadedPDFName.isBlank()) {
//do something
}

我正在字符串变量中捕获文件名。

我认为问题出在JDK版本上,如果你有像JDK 8或JDK 7这样的旧版本。。。使用isBlank((时会出现错误,因为String::isBlank(是在java11中引入的。您可以在终端中键入:java-version进行检查。如果您有旧版本,则可以使用isEmpty((。

String::isBlank是在Java 11中引入的。您可能已经将IntelliJ配置为使用一些较旧的Java版本(很可能是Java 8(。我建议使用其他代码替代方案,因为Java 11还没有得到广泛支持。

例如:

if (uploadedPDFName == null || uploadedPDFName.trim().length() == 0)

if (uploadedPDFName == null || uploadedPDFName.chars().allMatch(Character::isWhitespace))

如果您只关心检查它是否为空,请使用String::isEmpty。但是,如果String有空格,isBlank将返回true,而isEmpty则没有。

首先,我要检查IntelliJ是否设置为至少使用Java 11,就像引入isBlank()时一样。您也可以尝试isEmpty(),但JDK版本是我猜测的问题原因。

转到pom.xml,然后将Java版本更改为高于或等于16,然后更改为Maven -> Update

相关内容

最新更新