我正在阅读一本开始于Java 9基础的书,关于创建包装器对象,作者说:
“所有包装类都是不可变的。它们提供了三种创建对象的方法:
1-使用构造函数。
2-使用valueOf()工厂方法。
3-使用parseXxx()方法,其中Xxx是包装类的名称。它在Character类中不可用。
第一点和第二点我很清楚,但第三点我还没有完全理解。但是API说Integer.parseXxx返回一个原语。这有什么意义吗?
发布于 2017-11-22 21:46:54
是的,静态方法Integer.parseInt(String)试图将给定的字符串解析为一个基本整数。如果不这样做,就会引发异常。
因此,基本上,没有必要包装它,因为它保证了成功,或“让你知道”,它不能通过投掷。
发布于 2017-11-22 21:51:21
我认为使用parseXxx创建包装对象的唯一方法是,目标类型实际上是包装器类型本身。即:
Integer number = Integer.parseInt("123");然而,parseInt并没有真正创建包装器对象,而是将parseInt返回的值自动装箱到相应的包装器类型。
发布于 2018-01-20 08:48:42
查看Integer类的源代码可以确认Integer.parseInt返回int原语。下面是方法签名的方式,
public static int parseInt(String s, int radix)api基本上将字符串参数解析为有符号的十进制整数。字符串中的字符必须都是十进制数字,这样api才能工作。
在java程序中,它可以如下所示,从int获取String原语
int newInt = Integer.parseInt("99");https://stackoverflow.com/questions/47444306
复制相似问题