您好,欢迎来到微智科技网。
搜索
您的当前位置:首页StringBuilder.append(null)发生的奇怪事情

StringBuilder.append(null)发生的奇怪事情

来源:微智科技网

最近Coding, 发现一个bug,没有按照预期走到指定分支,意外发现StringBuilder.append(null)的奇怪事情

StringBuilder.append(null);
然后判断 StringBuilder的内部状态,是否为空,按照常识,应该是 空 才对,然后真实的结果如下所示

太奇怪了,StringBuilder.append(null); 结果 StringBuilder里面 既不是null值也不是空串,而是 4个char字符长度,这是啥情况?!

判断 StringBuilder里面的值是否和 “null” 相等,居然是相等的。

刷新了常识,这就应该追本溯源了,看看源码再说:

StringBuilder.append()方法,继承了super.append()方法,不急,继续看

原来在这里判断了接收的 str是否为null, 并且返回了一个奇怪的值

看看它做了什么操作

恍然大悟,原来返回了 “null” 这四个字符 ,原来append(null), 最终的结果是 append了一个 “null” 字符串。

小结

下次使用StringBuilder.append()的时候,在append之前记得先判断下加入的String是否为null,小记一下。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 7swz.com 版权所有 赣ICP备2024042798号-8

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务