String.valueOf(Object obj) 遇到的坑!

今天真是被坑到了。。。 
在做类型转换的时候,先是用了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)一个劲的判断,傻傻分不清。。。


版权声明:本文为qq_29766917原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。