这段equal改写代码是存在问题的,答案给出了问题的答案。
但并不是很清楚自己的理解对不对。求指点
public boolean equals(Object o) { if (o == null) { return false; } else if (o instanceof EmptyList) { FListInteger f = (FListInteger) o; return isEmpty(f); } else if (o instanceof Add) { FListInteger f = (FListInteger) o; if (size(this) == size(f)) { for (int i = 0; i < size(this); i++) { //------------------------------------------- if (get(this, i) != get(f, i)) { //------------------------------------------- return false; } } return true; } else { return false; } } else { return false; } }
横线之间需改成
if (FListInteger.get(this, i).equals(FListInteger.get(f2, i)))
求问这里的问题是需要用类名调用get method吗?而且当正在改写equals的时候为什么还用equals做比较 这里可不可以用 ”==“
感谢!
浮云间
慕尼黑的夜晚无繁华
相关分类