【发布时间】:2013-07-05 00:42:11
【问题描述】:
我最近发现 JDK6 中的 ProcessBuilder 类不会覆盖 equals()。有原因吗?由于类是可变的,我可以理解为什么它不覆盖hashCode()。
看到这段代码不起作用,我很惊讶:
ProcessBuilder x = new ProcessBuilder("abc", "def");
ProcessBuilder y = new ProcessBuilder("abc", "def");
if (x.equals(y)) { // they are never equal
// something important here
}
我查看了 ProcessBuilder 类的 JDK6 源代码,但没有看到 equals() 的覆盖。
我有一种感觉,除了这一门课之外,还有更深层次的原因。也许这是故意的?
【问题讨论】: