自动拳击和拳击包装类

时间:2011-03-19 13:45:03

标签: java

在包装器类中,我们在每个包装器类中有两种类型的方法parseXxx()和valueOf(),用于原始和包装器对象之间的相互转换。最近,java 1.5引入了自动装箱和装箱。为什么他们没有弃用这些方法。

4 个答案:

答案 0 :(得分:6)

因为Autoboxing和Auto Unboxing只是编译时功能。尝试在源文件中编写类似的内容,然后查看反编译代码:

Integer i = 10;

反编译代码:

Integer i = Integer.valueOf(10);

同样,

int i = new Integer(100);

在反编译时会给你以下内容:

int i = (new Integer(100)).intValue();

因此,JVM在运行时仍然严重依赖于这些方法,尽管在编写代码时它被屏蔽了。

答案 1 :(得分:2)

嗯,parseXxx()完全不同于拳击;它将 String 转换为原始对象。另一方面,valueOf()实际上是在装箱中使用 - 它要么构造一个新的包装器对象,要么从缓存中取出一个现有的一个,具体取决于值。 Java编译器生成对valueOf()的调用,这正是装箱的意思

答案 2 :(得分:0)


1.有时可以明确说明一些转换(为了清晰起见,例如某些不明显/模糊的情况)。
2.旧的计划是否会因弃用警告过多而导致弃用?

答案 3 :(得分:0)

由于命令行参数被视为String Array,但是当你期望命令行参数而不是String数据类型(可能是基元)时给出条件,即boolean,int,byte,short,long,float,double, char需要将参数解析为程序所需的参数,并且在这里使用parseXXX()方法,准确的是parseXXX方法获取String参数并返回您尝试解析的相应数据类型。

相关问题