繁体   English   中英

Java自动装箱ValueOf(String)

[英]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)方法,该方法会生成原始浮点数。


就相似性而言, 没有,它们并不完全相同。 第二个涉及从Floatfloat auto-unboxing ,而在第一种情况下没有unboxing 它使用给定的方法进行转换。

不同之处在于,第一个明确转换为浮点数,
而第二个则让它开箱。

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

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

Josh Bloch:有效的Java第二版

f = Float.valueOf(s);

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM