我在一个Java项目中工作,我的代码显示了奇怪的行为。这是我的代码:
String access = String.valueOf(getStringvalue());
Boolean isBlank = StringUtils.isBlank(access);
在上面的代码中,“访问”对象可以具有空值。
据说如果我们将空值传递给
StringUtils.isBlank()
,它将返回true。但是在这里,当access
为null时,我仅返回假值。这种行为的原因是什么? 最佳答案
我也遇到了这个问题,在看到String.valueof()的源代码之后就找到了窍门。下面是String.valueof()的源代码。
public static String valueOf(Object obj) {
return (obj == null) ? "null" : obj.toString();
}
因此,当您传递一个空对象时,您将获得一个“空”字符串。因此,您的StringUtils.isBlank()将其视为String而不是null对象,并且您将获得“false”布尔值。
希望能帮助到你。!