前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java 对象如何安全的 toString

Java 对象如何安全的 toString

原创
作者头像
HoneyMoose
发布2022-06-09 13:33:37
9200
发布2022-06-09 13:33:37
举报
文章被收录于专栏:CWIKIUS

如果我们的对象为空对象的时候,我们再使用 toString() 方法,我们将会得到空对象的异常。

这个对象有可能就是 String 对象,也有可能是其他的对象。

如下面的 2 行语句:

代码语言:javascript
复制
        Object obj = null;
        obj.toString();

如果你执行上面 2 行语句的话,铁定会抛出下面的空对象异常。

如何让 Java 能够 toString 又不抛出异常呢?

解决方法

我们可以使用 Apache commons.lang3 提供的 toString() 方法。

如下面显示的使用用例:

代码语言:javascript
复制
       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 就可以了:

代码语言:javascript
复制
        assertThat("null").isEqualTo(Objects.toString(obj));
        assertThat("").isEqualTo(Objects.toString(obj,StringUtils.EMPTY));

对比上面 2 个方法的不同,第一个方法是如果为 Null 的话,就直接输出字符串 null。

第二个方法是如果为空的话,将会用另外一个字符串去替换。

总结

通过上面的代码和用例,我们对在对象 toString 的时候可能出现的 Null 对象异常情况进行了解说。

并且展示了可以使用的一些方法。

https://www.ossez.com/t/java-tostring/14000

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 解决方法
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档