为了对即将到来的 JDK 7 新类 java.util.Objects 做准备,来自 Sun 的 Joe Darcy 向 OpenJDK core-libs-dev 团队咨询该类中应该包含哪些方法。借此机会,InfoQ 向广大的 Java 社区征求意见。
在最初的提案中,Darcy 谈到了该类中需要包含的几个方法:
- 一个空安全(null-safe)的 equals(arg1, arg2) 方法,如果两个参数都为 null 返回 true,如果只有一个为 null 返回 false,其他情况则调用 arg1.equals(arg2)
- 一套针对所有原生类型(int、long 等)的 compareTo(arg1, arg2) 方法
Andrew John Hughes 也给出了自己的一些看法:
- toString(arg),通过反射将对象中的所有属性都写到返回的输出字符串中
- 对 clone() 方法的一个辅助实现
Martin Buchholz 还提出一个空安全的 hashCode() 实现,对于值为 null 的对象该方法返回 0。
Stephen Colebourne 专门为该类创建了一个长长的推荐方法列表,这些方法大多都是从 Apache Commons Lang 程序库中摘取出来的。比如:
- min(comparable1, comparable2) 与 max(comparable1, comparable2),这两个方法都是空安全的方法,返回最小 / 最大的非空对象(如果两个参数都为 null 则返回 null)
- defaultNull(obj, defaultValue),如果 obj 为 null 则返回 defaultValue 对象
您有什么高见呢?java.util.Objects 中应该包含哪些方法呢?
查看英文原文: JDK 7: What Frequently Rewritten Methods Should be Included in java.util.Objects?
评论