什么时候应该使用布尔值而不是布尔值?我的意思是,为什么我想在应该包含“true”或“false”的变量中包含一个空值。(大多数人)一个自发的答案是,如果该值未知。即,如果我们不知道该值是真还是假。但从编程的角度来看,我认为使用布尔值可能会破坏代码,因为我们不知道里面有什么。所以,我认为使用原始类型比包装器更好。如果我错了,请纠正我。
一般来说,包装类用于需要或强烈首选对象的情况。除了这些情况之外,最好使用原始类型,因为它们的开销较低,您可以使用==
等等。常见的情况有两种半:
- 收藏。现在这是下一种情况的子集,但即使在 Java 5 之前,Collections 类也仅支持对象作为键和值,并且这一点没有改变。
- 泛型。泛型类型只能与对象一起使用,而不能与基元一起使用,因此如果您使用“boolean”作为类型参数,它必须是包装类。例如,如果您正在使用
Future
,你必须使用Boolean
代替boolean
。 (HT@user949300)
- ORM。从技术上讲,JPA 和其他 ORM 系统可以使用原始字段,但通常使用包装类,因为开销足够高,无论如何这并不重要,并且包装类可以表示一个
NULL
数据库中可能存在的值。不过,通常最好禁止空值并使用布尔值原语,因为从语义上来说,默认值通常比“未定义”更好。
由于布尔值仅限于true
or false
,在集合或泛型中使用它们的情况并不常见;一般来说,如果你有一个布尔值作为值,你只需使用Collection#contains
反而。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)