【发布时间】:2016-02-22 04:49:33
【问题描述】:
对于Strings,我可以使用String s = null,因为String 是java 中的一个对象。对于chars,我可以使用char c = '\u0000';,因为这是一个“空”字符(我也可以使用空格字符)。我的问题是,对于 int/double primative 类型,什么相当于 null(如果有)?我不想使用0,因为如果我的值之一实际上是0,这将不起作用。
注意:我需要这个,因为我正在从文件中解析和标记化,如果解析无法解析 int/double,则需要将其返回值设置为某个值以供其调用类检查。
【问题讨论】:
-
包装类进入java的原因之一就是提供这样的能力。你应该做的就是用
Integer替换你的int,用Double替换double,用Character替换char等等。然后您也可以将null分配给这些变量。 -
@STaefi 好吧,让我问你一个问题。我正在编写自己的编程语言,这就是我需要它的原因。对于我的基本操作方法,我应该使用包装类还是原始数据类型?
-
这个问题非常基于意见,因为我们不了解您的编程语言的所有方面。包装类的一些好的特性,比如自动装箱/拆箱以及类似 OOP 的行为是非常诱人的,但是原始数据类型可能会给你更高的性能。所以不能用你的问题给你一个好主意。
-
@STaefi 哦,好吧。考虑到这只是为了好玩(ppcg堆栈交换站点),性能对我来说并不是一件大事。我想我会选择包装类。 TY