当前位置:  开发笔记 > 编程语言 > 正文

(String)或.toString()?

如何解决《(String)或.toString()?》经验,为你挑选了4个好方法。

我有一个带Object o参数的方法.

在这个方法中,我确切地知道String在"o"中有一个非空的.无需检查或执行其他操作.我必须像String对象一样对待它.

只是好奇 - 什么更便宜 - 把它投入String或使用Object.toString()?或者是时间/ cpu-/mem-价格相同?

更新:该方法接受,Object因为它是接口的实现.无法更改参数类型.

它根本不可能null.我只想说我不需要检查它是否为空或空.在我的情况下,总是有一个非空的字符串.



1> euphoria83..:

转换为String更便宜,因为它不需要外部函数调用,只需要内部类型检查.


您是否跨多个JRE进行了测试?我已经看到了令人惊讶的结果,因为这种情况在.NET中非常出色.实际上我怀疑表演在现实生活中是否重要 - 但从防守编码的角度来看,铸造更好.

2> Jon Skeet..:

我会用演员.这证实了你的"知识",即它是一个字符串.如果由于某种原因你最终得到一个bug并且有人传递了一个字符串以外的东西,我认为抛出一个异常(演员会做的)比继续执行有缺陷的数据更好.



3> cletus..:

根据Silly表现思考:x.toString()vs(String)x

在最后,结果非常清楚:将Object转换为String的速度至少是调用Object.toString()的两倍.



4> Andy White..:

如果您知道Object o是一个String,我会说它只是将它转换为String并以这种方式强制执行.在一个你知道肯定是String的对象上调用toString()可能只会增加混乱.

如果Object o可能不是String,则需要调用toString().

推荐阅读
臭小子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有