今天真是被坑到了。。。
在做类型转换的时候,先是用了toString(),但是参数必须不是null值,否则将抛出NullPointerException异常。
然后就用了String.valueOf(),再将转换的结果做非空验证时总是判断不到他是null。。。
最后一看它的内部实现机制:
public static String valueOf(Object obj){
return (obj==null) ? "null" : obj.toString()
};
当object为null 时,String.valueOf(object)的返回值是字符串”null”,而不是null!!!
就是说他返回的结果是"null"字符串!!!不是null。。。。我还一直在用StringUtil.isNotBlank(str)一个劲的判断,傻傻分不清。。。