首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用parseInt创建包装器对象

使用parseInt创建包装器对象
EN

Stack Overflow用户
提问于 2017-11-22 21:43:38
回答 3查看 461关注 0票数 3

我正在阅读一本开始于Java 9基础的书,关于创建包装器对象,作者说:

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

1-使用构造函数。

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

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

第一点和第二点我很清楚,但第三点我还没有完全理解。但是API说Integer.parseXxx返回一个原语。这有什么意义吗?

EN

回答 3

Stack Overflow用户

发布于 2017-11-22 21:46:54

是的,静态方法Integer.parseInt(String)试图将给定的字符串解析为一个基本整数。如果不这样做,就会引发异常。

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

票数 2
EN

Stack Overflow用户

发布于 2017-11-22 21:51:21

我认为使用parseXxx创建包装对象的唯一方法是,目标类型实际上是包装器类型本身。即:

代码语言:javascript
复制
Integer number = Integer.parseInt("123");

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

票数 2
EN

Stack Overflow用户

发布于 2018-01-20 08:48:42

查看Integer类的源代码可以确认Integer.parseInt返回int原语。下面是方法签名的方式,

代码语言:javascript
复制
public static int parseInt(String s, int radix)

api基本上将字符串参数解析为有符号的十进制整数。字符串中的字符必须都是十进制数字,这样api才能工作。

在java程序中,它可以如下所示,从int获取String原语

代码语言:javascript
复制
int newInt = Integer.parseInt("99");
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47444306

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档