String您建议使用哪种方式转换Java对象?为什么?
例如,假设我们有:
StringBuilder sb = new StringBuilder();
我们可以通过String两种方式将其转换为.第一:
sb.toString();
Run Code Online (Sandbox Code Playgroud)
第二:
sb + "";
Run Code Online (Sandbox Code Playgroud)
第一种是优选的,因为它更常用且更有效.
如果String不为空,你只会使用第二个(在这种情况下你应该将它附加到StringBuilder)
第二个例子更昂贵,因为它与之相同
new StringBuilder().append(sb.toString()).append("").toString();
Run Code Online (Sandbox Code Playgroud)
从技术上讲,它就是这样做
new StringBuilder().append(String.valueOf(sb)).append("").toString();
Run Code Online (Sandbox Code Playgroud)
区别在于String.valueOf(null)=>"null"而不是NPE.
someObject.toString()和之间的主要区别someObject + ""是,如果someObject为null:前者将抛出NullPointerException,而后者则不会抛出(它将返回"null").
如果您希望您的对象为非null,则:
String s = someObject.toString();
Run Code Online (Sandbox Code Playgroud)
保存不必要的连接(编译器可能会或可能不会删除).
但是,如果对象可以为null并且它是可接受的值,我宁愿选择:
String.valueOf(someObject);
Run Code Online (Sandbox Code Playgroud)
在此示例中,如果someObject为null,则返回"null"并且不会引发异常.
| 归档时间: |
|
| 查看次数: |
95 次 |
| 最近记录: |