我正在阅读“初学Java 9基础知识”一书,以及与创建包装器对象有关的作者:
“所有包装类都是不可变的。它们提供了三种创建方式 他们的对象:
1 - 使用构造函数。
2 - 使用valueOf()
工厂方法。
3 - 使用parseXxx()
方法,其中Xxx
是包装类的名称。它在Character
类中不可用。
第一点和第二点我已经明确了,但第三点我还没有完全理解它。 但是API说Integer.parseXxx返回一个原语。 它有意义吗?
答案 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");