【发布时间】:2021-11-05 16:29:24
【问题描述】:
我正在验证给定字符串是 null、isEmpty 或 isBlank,并且我有一个用例,我必须检查 productId 或 productItem 是否应该出现或 productName 和 @987654329 @ 应该包含值。为此,我在下面写了 if 条件,但它看起来非常笨拙且不可读。有人可以帮助我如何简化这个 if 条件并以更易读的格式编写。
public class validate {
public static void main(String[] args) {
String productId = "";
String productItem = "";
String productName = "Apple";
String productPrice = "1500";
if ((!productId.isEmpty() && !productId.isBlank() && productId != null
|| !productItem.isEmpty() && !productItem.isBlank() && productItem != null)
|| (!productName.isEmpty() && !productName.isBlank() && productName != null
&& !productPrice.isEmpty() && !productPrice.isBlank() && productPrice != null)) {
System.out.println("valid");
} else {
System.out.println("not valid");
}
}
}
【问题讨论】:
-
Java 8 中没有
isBlank(),那你为什么用java-8标记你的问题,却问Java 11 中引入的一种方法?此外,显然空字符串也是空字符串,所以如果测试! isBlank(),则无需测试! isEmpty()。除此之外,合理的解决方案是首先不要让字符串变成null。 -
别再问同样的问题了。