【发布时间】:2015-04-10 03:47:20
【问题描述】:
我知道处理null 原语的最佳做法是使用盒装包装器,例如Integer 而不是int,如此处所述
但是,今天 Java 8 仍然如此吗?
引入了可选原语,例如OptionalInt,其OptionalInt.empty() 有效地表示null 值?我的理解是 Optionals 应该只用于方法返回类型,而不是作为属性本身的类型。 “可空”原语是否仍应存储为盒装属性?他们应该只在方法返回类型中为Optional 吗?或者在属性本身中存储为OptionalInt?
【问题讨论】:
-
您知道使用
OptionalInt相对于普通的旧Integer的优势吗?对于后者,您只需将其分配给null并以与OptionalInt和isEmpty()相同的方式进行相应的处理。这是一个有趣的问题。 -
在您的应用程序的数据模型中,值为“null”的语义是什么?
-
好的,大家所说的语义是什么意思?就像使用 0 或 -1 来标记不存在的 int 值一样?或者使用可选的业务上下文是什么?
-
“好吧,那么每个人所说的语义是什么意思?”语义(“词义”)就是它的意思 i> 有一个空的
Integer。 null 是否意味着“空”? null 仅在某些初始化之前有效吗? null 是否表示发生了错误?等等...OptionalInt有特定的含义。