IntelliJ IDEA - 获取无法解析“字符串”中的方法“isBlank”但在 STS 中工作正常

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

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

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

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

stack overflow IntelliJ IDEA - Get Cannot resolve method 'isBlank' in 'String' but works fine in STS
原文答案
author avatar

接受的答案

I think the problem is about your JDK version,if you have an old version like JDK 8 or JDK 7 ...you will have an error when using isBlank() because String::isBlank() was introduced in java 11. You Can check by typing :java --version in a terminal if you have an old version,you Can just use isEmpty().


答案:

作者头像

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

作者头像

[String::isBlank](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html#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将返回true,Isempty却没有。

作者头像

Go to pom.xml Then change Java version to above or equal to 16 and then Maven -> Update