【发布时间】:2012-11-05 09:52:38
【问题描述】:
我需要一些类implements Comparator,其中一个我想比较原始boolean(不是Boolean)值。
如果它是一个 Boolean,我会只使用 return boolA.compareTo(boolB);,它会返回 0、-1 或 1。但是我如何使用原语来做到这一点?
【问题讨论】:
-
你听说过自动装箱吗?
-
@stackmonster 自动装箱对性能有轻微影响,因此 OP 可能仍然更喜欢编写原始代码。
-
比较器不采用原始类型。这就是问题所在。
-
@MarkoTopolnik 由于每个可能的
boolean对象都被缓存,自动装箱可能不会像您预期的那样花费太多。注意:每个可能的byte也会被缓存。 -
@PeterLawrey 是的,我考虑到了这一点。命中非常轻微(必须取消引用
Boolean常量)并且可能不值得额外的代码。
标签: java comparator primitive-types