Java 对象如何安全的 toString
如果我们的对象为空对象的时候,我们再使用 toString() 方法,我们将会得到空对象的异常。
这个对象有可能就是 String 对象,也有可能是其他的对象。
如下面的 2 行语句:
Object obj = null;
obj.toString();
如果你执行上面 2 行语句的话,铁定会抛出下面的空对象异常。
如何让 Java 能够 toString 又不抛出异常呢?
解决方法
我们可以使用 Apache commons.lang3 提供的 toString() 方法。
如下面显示的使用用例:
Object obj = null;
ObjectUtils.toString(obj, StringUtils.EMPTY);
ObjectUtils.toString(obj, ()->StringUtils.EMPTY);
如果我们输入的对象为 NULL 的话,上面的语句将会输出一个指定的字符串而不抛出空异常。
需要注意的是写法:
ObjectUtils.toString(obj, StringUtils.EMPTY);
Apache commons.lang3 项目官方提示这个方法将会在后续的版本中被丢弃。
原因是这个方法已经被 java.util.Objects.toString(Object, String) 方法替代了。
如果你使用的是 Java 7 以上版本的话,建议你使用 java.util.Objects.toString 方法。
你可以简单的 Objects.toString 就可以了:
assertThat("null").isEqualTo(Objects.toString(obj));
assertThat("").isEqualTo(Objects.toString(obj,StringUtils.EMPTY));
对比上面 2 个方法的不同,第一个方法是如果为 Null 的话,就直接输出字符串 null。
第二个方法是如果为空的话,将会用另外一个字符串去替换。
总结
通过上面的代码和用例,我们对在对象 toString 的时候可能出现的 Null 对象异常情况进行了解说。
并且展示了可以使用的一些方法。
分类:
Java
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
2021-06-09 Packer 自动化镜像 Windows 安装过程
2020-06-09 PyPi 是什么