String.valueOf(Object)与Objects.toString(Object)

便捷的方法String.valueOf(Object) 自JDK 1.0起就存在,并且是我经常使用的JDK提供的方法之一。 我以前曾在博客上评论过它的价值 。 JDK 1.7引入了 Objects类 ,其中包括Objects.toString(Object)方法。 这篇文章比较了这两种听起来相似的方法。

这两个方法String.valueOf(Object)Objects.toString(Object)本质上都做相同的事情:如果传入的对象不为null则调用它的toString()方法;如果将null传递给它们,则返回字符串“ null” 。 简而言之,这两种方法都旨在提供一种简单的方法来调用对象的toString()而不必担心如果结果为null NullPointerException

下表比较了String.valueOf(Object)Objects.toString(Object)

特性 String.valueOf(Object) Objects.toString(Object)
Java SE 10方法Javadoc “ 返回Object参数的字符串表示形式。 “ “ 返回调用toString用于非结果null论证和‘空’的null参数。 “
Java SE 10返回Javadoc “如果参数为null ,则字符串等于“ null”; 否则,将返回obj.toString()的值。” “打电话的结果toString一个非null空‘的说法和’ null的说法”
方法修饰符 public static public static
重载版本 valueOf(布尔值)
valueOf(字符)
valueOf(char [],int,int) valueOf(双) valueOf(float) valueOf(int) valueOf(long) valueOf(对象)
toString(Object)
toString(Object,String)

从表面上看, String.valueOf(Object)Objects.toString(Object)似乎做同样的事情。 事实证明它们是相同的。 这是来自OpenJDK的Objects.toString(Object)的代码:

OpenJDK: Objects.toString(Object)定义

public static String toString(Object o) {return String.valueOf(o);
}

上面的代码片段显示Objects.toString(Object)方法只是委托给String.valueOf(Object)方法。 接下来显示String.valueOf(Object)的OpenJDK实现。

OpenJDK: String.valueOf(Object)定义

public static String valueOf(Object obj) {return (obj == null) ? "null" : obj.toString();
}

上面的代码片段显示,当需要使用对象的toString()表示形式时,可以调用String.valueOf(Object)Objects.toString(Object)而没有NullPointerException风险。 可能有较小的理由偏爱另一个,我通常选择直接调用String.valueOf(Object)不是通过Objects.toString(Object)对该方法的间接调用。

虽然我通常在默认情况下使用String.valueOf(Object) [而不是Objects.toString(Object) ],但如果传入的对象为null时,我希望返回字符串“ null”,则替代重载方法Objects.toString(Object,字符串)的优点是,如果传入的对象为null ,则允许用户指定要由该方法返回的任何字符串。 因此,例如,如果传入的对象为null ,则可以使用此方法返回空字符串( "" ),字符串“ nil”,字符串“ none”或任何其他任意字符串。 接下来显示Objects.toString(Object, String)的OpenJDK代码清单。

OpenJDK: Objects.toString(Object, String)定义

public static String toString(Object o, String nullDefault) {return (o != null) ? o.toString() : nullDefault;
}

关于Objects.toString(Object, String)实现的注意事项是,如果将null传递给此方法作为第二个参数,则该方法将返回null (而不是字符串“ null”或任何其他字符串) 。

使用String.valueOf(Object)Objects.toString(Object)Objects.toString(Object, String)可以轻松提供对象的字符串表示形式,而无需编写显式检查null

翻译自: https://www.javacodegeeks.com/2018/08/valueofobject-tostringobject.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/345837.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微信公众号推广的31个方式,最厉害的是最后一个

“媒介是人的延伸”。 在互联网的大语境下,在流量红利后期,坐拥10.8亿用户的微信,对企业来讲就是一个大金矿。 在PC时代,企业网站是标配,在移动互联网时代,微信公众号是标配。 而微信公众号建立之后&…

期望、方差

一、期望和方差的定义 随机变量(Random Variable) X 是一个映射,把随机试验的结果与实数建立起了一一对应的关系。而期望与方差是随机变量的两个重要的数字特征。 1. 期望(Expectation, or expected value) 期望是度量一个随机变量取值的集中位置或平均水平的最基…

862人文英语4

客观题 交际用语(共5题,共10分) 1. — Do you think cosmetic surgery is more popular with women? — ________________ . A Yes, women are more popular than men B Yes, absolutely. Because women pay more attention to beaut…

【数据结构】图

一.图的定义 1.定义: 图G由顶点集V和关系集E组成,记为G(V,E) 注:图可以没有边,但不能没有顶点。 2.图的分类: 图的顶点数为n,边数为e 有向图: 无向图&a…

国计算机学会聘为全国青少年信,中国计算机学会将继续开展NOI相关活动,暂未作出重新申报的决议...

教育部公示2019年面向中小学生的全国性竞赛活动名单,科技创新类、学科类、艺术体育类共31项竞赛上榜。信息学竞赛未上榜的话题最近得到了信息学奥赛主办方中国计算机学会秘书长杜子德的官方回应。详细报道根据信息学奥赛主办方中国计算机学会秘书长杜子德的回应&…

1162开放英语4 (2)

客观题 交际用语(共5题,共10分) 1. —Hello, Sir. ______ —I’d like to order a pizza. A What do you do? B How are you? C What can I do for you? 参考答案:C;考生答案:C;试题…

非负矩阵之Perron-Frobenius定理

1. 矩阵论记号约定 2. 非负矩阵之Perron-Frobenius定理 1907 年 O. Perron 发现正矩阵的谱有特别有趣的性质。G. Frobenius 在 1908-1912 年间将 Perron 的工作推广到不可约非负矩阵的情形,并得到了新的进一步结果。 Oskar Perron 在1907年发表了关于正矩阵的一些基…

建议把英语改成选修的计算机老师,越来越多的人建议高中将英语作为选修课,而非必修课,您认同吗?...

很多粉丝家人给白老师留言,说英语应该作为选修课,而不是必修课,因为英语学习影响了太多的学生,尤其是那些有真正才华的学生,而且英语学习又不实用,只是为了考试而已,问我是否认同这种说法&#…

1162开放英语4

客观题 交际用语(共5题,共10分) 1. —Hello, Sir. ______ —I’d like to order a pizza. A What do you do? B How are you? C What can I do for you? 参考答案:C;考生答案:C;试题…

hazelcast 使用_使用Hazelcast发布和订阅

hazelcast 使用几周前,我写了一篇有关Hazelcast入门的博客,描述了创建分布式地图,列表和队列是多么简单。 当时我提到,Hazelcast还做很多其他事情。 该博客快速介绍了Hazelcast的另一个功能:基于Publish / Subscribe模…

谱半径

矩阵的谱或叫矩阵的谱半径,在特征值估计、广义逆矩阵、数值分析以及数值代数等理论的建树中,都占有极其重要的地位; 矩阵的谱半径为矩阵的特征值的模的最大值。 关于矩阵的谱(半径)的一个重要性质即是:任意…

计算机组成原理中7421,计算机组成原理07421

《计算机组成原理07421》由会员分享,可在线阅读,更多相关《计算机组成原理07421(21页珍藏版)》请在技术文库上搜索。1、中断服务子程序图C2.1保存CPU现场设备服务恢复CPU现场开中断,即“中断屏蔽”复位(3)(354)10(542.5)8(4)(354)10(00110101…

1809企业战略管理

客观题 单选题(共10题,共20分) 1. 石油公司对石油化工企业来而言,决定他们讨价还价能力的最主要影响因素是( )。 A 交易量 B 产品差异化程度 C 转换成本 D 卖方产品标准化程度 参考答案&#xff1…

矩阵迹(trace), 行列式(determinate)

1. 迹(trace) 矩阵的迹(trace)表示矩阵 A AA 主对角线所有元素的和 迹的来源 最根本的应该就是迹和特征值的和相等。因为特征值如此重要,所以才定义了迹。离开了这一点,我觉得迹也就失去了立足点。 迹…

计算机的四个硬盘有什么区别是什么意思,笔记本的内存和硬盘有什么区别 原来笔记本硬盘有这几种...

之前有很多人分不清笔记本的内存和硬盘有何区别,很容易发生“内存128GB”的笑话,那么到底硬盘和内存有和区别?如何判断内存好坏呢?我想你应该看看这篇文章。笔记本内存内存是PC中的重要一环,是数据存放和交换的空间,所以内存容量…

1818国民经济核算

客观题 单选题(共30题,共60分) 1. 名义持有资产收益表明整个核算期由于( )变动而引起的全部价值收益。 A 数量 B 综合物价指数 C 时间 D 价格 参考答案:D;考生答案:D&#…

997西方行政学说 (2)

客观题 单项选择题(共20题,共20分) 1. 行政管理真正形成相对完整的理论体系,成为一门独立学科,是在( )。 A 17世纪末18世纪初 B 18世纪末19世纪初 C 19世纪末20世纪初 D 20世纪末21世纪…

抖音上发的测体重的软件怎么测试,抖音手机称重是什么软件 怎么用iPhone苹果手机称重方法...

抖音手机称重是最近很流行的,直接将想要称重的东西放在手机上,我们就可以知道物品的重点了,看上去很有意思,很多人都在玩。而抖音手机称重是什么软件呢?文中为大家介绍。抖音手机称重是什么软件称重计:Touc…

最小/大加代数(Min/max-Plus Algebra)

最小加代数 最小加代数最初是用于数字电路、通信网络以及制造工业等离散事件系统( Discrete Event Systems)建模的一种数学工具。在最小加代数中,下面两个运算符经常用到: 最大加代数 https://www.jianshu.com/p/c9847bb31834

1823政府经济学 (2)

客观题 单项选择题(共10题,共10分) 1. 政府经济的依据主要是( )。 A 私人财产所有权 B 社会公共权力 C 道德劝说 D 法律制度 参考答案:B;考生答案:B;试题分数&a…