String.valueOf(null)

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、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的部分源码):

三、各种判断

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JFS_Study

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值