打印出来是null但是却不是null的情况

打印出来是null但是却不是null的情况

在今天看日志的时候,很明显看到sku.getWidth()打印出来的是null,但是使用sku.getWidth() == nullStrings.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, "")

你可能感兴趣的:(JAVA)