我最近发现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
}
我查看了类的 JDK6 源代码ProcessBuilder
,但没有看到equals()
.
我有一种感觉,除了这一堂课之外,还有更深层次的原因。也许这是故意的?