IntelliJ IDEA - Get Cannot resolve method 'isBlank' in 'String' 但在 STS 中工作正常

IntelliJ IDEA - Get Cannot resolve method 'isBlank' in 'String' but works fine in STS

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

我使用的代码部分是这样的:

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

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

首先,我会检查 IntelliJ 是否设置为至少使用 Java 11,因为那是引入 isBlank() 的时候。您也可以尝试 isEmpty(),但 JDK 版本是我对导致问题的原因的猜测。

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。但是,如果字符串有空格,则 isBlank returns 为真,而 isEmpty 则没有。

我认为问题出在您的 JDK 版本上,如果您使用的是像 JDK 8 或 JDK 7 这样的旧版本...您在使用 isBlank 时会出错() 因为 String::isBlank() 是在 java 11 中引入的。 您可以通过在终端中输入 :java --version 来检查是否有旧版本,您可以只使用 isEmpty()。

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