46 java
我可以使用将整数转换为字符串
String s = "" + 4; // correct, but poor style
or
String u = Integer.toString(4); // this is good
我可以使用双精度转换为字符串
String s = "" + 4.5; // correct, but poor style
or
String u = Double.toString(4.5); // this is good
我可以使用String s = "" + data方法将int或double转换为String.虽然如果我想使用其他方法,toString()我必须使用每种数据类型的Wrapper类.那么为什么在一些书中   提到第一种方法是差的,而第二种方法则更好.哪一个更好的方法,为什么?
Jon*_*eet 67
我会用
String.valueOf(...)
您可以对所有类型使用相同的代码,但没有可怕的和无意义的字符串连接.
请注意,它也准确地说出了您想要的内容 - 与给定原始值对应的字符串值.将此与"" + x您正在应用字符串连接的方法进行比较,即使您无意连接任何内容,并且空字符串与您无关.(它可能更昂贵,但是我更关注的是可读性,而不是性能.)
Mic*_*rdt 31
怎么样String.valueOf()?它被覆盖了所有原始类型的重载和委托给toString()引用类型.
Ang*_*ere 10
String s = "" + 4;
编译为此代码:
StringBuffer _$_helper = new StringBuffer("");
_$_helper.append(Integer.toString(4));
String s = _$_helper.toString();
显然这很浪费.请记住,在场景后面,如果在String中使用+ inoc,编译器总是使用StringBuffers
还有第三个 - String.valueOf(..)(调用Wrapper.toString(..)
实际上编译器会Wrapper.toString(..)在这些地方添加,所以它在字节码方面是相同的.但是""+x更丑陋.
| 归档时间: | 
 | 
| 查看次数: | 4596 次 | 
| 最近记录: |