您对以下代码行有什么看法?:
String s= "10.0";
float f = Float.valueOf(s).floatValue();//1
有必要吗?为什么使用这样的语法而不是使用:
会更好float f = Float.valueOf(s);//2
利用自动装箱功能,它仍能提供相同的结果。
简而言之,我的问题是:为什么要选择第一种语法而不是第二种语法?它们完全相同吗?
答案 0 :(得分:5)
简而言之,我的问题是:为什么要选择第一种语法 而不是第二个?它们完全相同吗?
好吧,我不会同时使用它们,因为它们都会生成中间Float
对象,几乎总是不需要它。无论何时需要,我们都会让它与拳击一起工作。
现在,您应该只使用生成原始浮动的Float.parseFloat(String)
方法。
就相似性而言,不,它们不是完全相同。第二个涉及从auto-unboxing
到Float
的{{1}},而第一个案例中没有float
。它使用给定的方法进行转换。
答案 1 :(得分:0)
不同之处在于,第一个明确地转换为浮动,
而第二个让它暴露出来。
在Java 1.3上,自动装箱不可用!
此外,在某些情况下,自动装箱会产生不必要的结果 对于自动装箱失败的情况:请参阅
Josh Bloch:有效的Java第二版
答案 2 :(得分:0)
f = Float.valueOf(s);
自动装箱功能是在Java 5之后引入的。在早期版本的Java中编译时,此代码会出错。