我有一个方法,它接受String参数。在某些情况下,我想将int值传递给该方法。对于调用该方法,我想将int转换为String.For我正在做以下
aMethod(""+100);
还有一个选择是
aMethod(String.valueOf(100));
两者都是正确的。我不知道哪个是合适的?哪个性能更好?
大多数情况下,这发生在GWT中。在GWT中设置面板和小部件的大小,我想这样做。
有人可以提出建议吗?
答案 0 :(得分:11)
Jon Skeet关于你的问题主题的好文章:String conversions - the Good, the Okay-I-Suppose, and the Utterly Horrible
答案 1 :(得分:4)
在字符串上使用+
会创建多个字符串实例,因此使用valueOf
可能会更高效。
答案 2 :(得分:2)
由于你主要在GWT中使用它,我会使用“”+方法,因为它是最好看的,它最终会转换为javascript,其中没有StringBuilder这样的东西
请不要伤害我的Skeet Fanboys;)
答案 3 :(得分:1)
通常你会使用Integer.toString(int)或String.valueOf(int)。它们都返回相同的东西,并且可能具有相同的实现。尽管如此,Integer.toString(int)更容易阅读,IMO。
答案 4 :(得分:0)
我假设这个:
aMethod(""+100);
由编译器转为:
aMethod(new StringBuilder("").append(String.valueOf(100)).toString());
因此,直接调用String.valueOf的选项可能是更好的选择。您总是可以编译它们并比较字节码以确定。