使用parseInt创建包装器对象

时间:2017-11-22 21:43:38

标签: java object wrapper

我正在阅读“初学Java 9基础知识”一书,以及与创建包装器对象有关的作者:

  

“所有包装类都是不可变的。它们提供了三种创建方式   他们的对象:

1 - 使用构造函数。

2 - 使用valueOf()工厂方法。

3 - 使用parseXxx()方法,其中Xxx是包装类的名称。它在Character类中不可用。

第一点和第二点我已经明确了,但第三点我还没有完全理解它。 但是API说Integer.parseXxx返回一个原语。 它有意义吗?

3 个答案:

答案 0 :(得分:2)

是的,静态方法Integer.parseInt(String)尝试将给定的字符串解析为原始整数。如果不这样做,就会抛出异常。

所以基本上,没有必要包装它,因为它保证要么成功,要么“让你知道”它不能通过投掷。

答案 1 :(得分:2)

我看到使用parseXxx创建包装器对象的唯一方法是将目标类型实际上设置为包装器类型。即:

Integer number = Integer.parseInt("123");

然而, parseInt并没有真正创建包装器对象,而是parseInt返回的值正在自动装箱到其相应的包装器类型

答案 2 :(得分:1)

查看Integer类的 source code ,确认Integer.parseInt返回int原语。下面是方法签名,

public static int parseInt(String s, int radix)

api基本上将字符串参数解析为带符号的十进制整数。字符串中的字符必须都是十进制数字,以便api工作。

它可以在java程序中用于从int获取String原语

int newInt = Integer.parseInt("99");