[英]Java autoboxing ValueOf(String)
您如何看待以下代码行:
String s= "10.0";
float f = Float.valueOf(s).floatValue();//1
有必要吗? 为什么使用这种语法比使用以下语法更好?
float f = Float.valueOf(s);//2
利用自动装箱功能,仍然可以得到相同的结果。
简而言之,我的问题是:为什么要选择第一种语法而不是第二种语法? 他们完全一样吗?
简而言之,我的问题是:为什么要选择第一种语法而不是第二种语法? 他们完全一样吗?
好吧,我不会使用它们,因为它们都会生成中间的Float
对象,几乎总是不需要。 无论需要什么地方,我们都可以将其与拳击配合使用。
现在,您应该只使用Float.parseFloat(String)
方法,该方法会生成原始浮点数。
就相似性而言, 没有,它们并不完全相同。 第二个涉及从Float
到float
auto-unboxing
,而在第一种情况下没有unboxing
。 它使用给定的方法进行转换。
不同之处在于,第一个明确转换为浮点数,
而第二个则让它开箱。
在Java 1.3上,自动装箱功能不可用!
此外,在某些情况下,自动装箱会产生不需要的结果。
对于自动装箱失败的情况:请参阅
Josh Bloch:有效的Java第二版
f = Float.valueOf(s);
自动装箱功能是在Java 5之后引入的。在Java的早期版本中编译时,此代码将产生错误。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.