Java自动装箱ValueOf(String)

时间:2013-02-11 22:23:03

标签: java string int boxing value-of

您对以下代码行有什么看法?:

 String s= "10.0";
  float f = Float.valueOf(s).floatValue();//1

有必要吗?为什么使用这样的语法而不是使用:

会更好
float f = Float.valueOf(s);//2

利用自动装箱功能,它仍能提供相同的结果。

简而言之,我的问题是:为什么要选择第一种语法而不是第二种语法?它们完全相同吗?

3 个答案:

答案 0 :(得分:5)

  

简而言之,我的问题是:为什么要选择第一种语法   而不是第二个?它们完全相同吗?

好吧,我不会同时使用它们,因为它们都会生成中间Float对象,几乎总是不需要它。无论何时需要,我们都会让它与拳击一起工作。

现在,您应该只使用生成原始浮动的Float.parseFloat(String)方法。


就相似性而言,不,它们不是完全相同。第二个涉及从auto-unboxingFloat的{​​{1}},而第一个案例中没有float。它使用给定的方法进行转换。

答案 1 :(得分:0)

不同之处在于,第一个明确地转换为浮动,
而第二个让它暴露出来。

在Java 1.3上,自动装箱不可用!

此外,在某些情况下,自动装箱会产生不必要的结果 对于自动装箱失败的情况:请参阅

  

Josh Bloch:有效的Java第二版

答案 2 :(得分:0)

  

f = Float.valueOf(s);

自动装箱功能是在Java 5之后引入的。在早期版本的Java中编译时,此代码会出错。