一、String.valueOf()当传入的参数为一个引用且该引用为 null 时,方法返回字符串“null”
简言之,如果对象为 null 就返回字符串的“null”,不为空就调用 toString 方法。此时若用StringUtils.isBlank()这类方法判断时将返回 true。该方法的源码如下(jdk1.8.0_131中String的部分源码):

特别注意:
valueOf() 可能会返回“null”字符串,不能用 StringUtils.isEmpty() 或 isBlank() 来简单地判断 valueOf() 返回值是否为空。
二、调用String.valueOf()时若实参直接写为 null,方法会报 NPE。
通过 IDE 可以看出,valueOf(null)调用的 String 类的方法如下(jdk1.8.0_131中String的部分源码):

而上述源码的中new String(data)又会调用如下方法(jdk1.8.0_131中String的部分源码):

三、各种判断


本文探讨了String.valueOf()方法在处理null引用时的行为,强调了它可能返回null字符串,以及在使用StringUtils.isEmpty()或isBlank()进行判断时的误用。通过源码分析,揭示了valueOf()方法调用过程中的细节和注意事项。
2万+

被折叠的 条评论
为什么被折叠?



