我最近将我的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