打印出来是null但是却不是null的情况
在今天看日志的时候,很明显看到sku.getWidth()
打印出来的是null,但是使用sku.getWidth() == null
和Strings.isBlank(sku.getWidth())
返回的都是false.
后来想起来width可能是"null"的字符串,所以打印出来是null,实际却不是。再往里看,原来用了String.valueOf()
来设置width
字段。
String.java
public static String valueOf(Object obj) {
return (obj == null) ? "null" : obj.toString();
}
Objects.java
public static String toString(Object o) {
return String.valueOf(o);
}
public static String toString(Object o, String nullDefault) {
return (o != null) ? o.toString() : nullDefault;
}
所以比较安全的toString
方法是Objects.toString(obj, "")