overrode equals(),但不是hashcode()(我有@SuppressWarnings)

时间:2018-02-17 21:33:17

标签: java generics adt hashcode

每次我做-Xlint javac List.java时我都会收到以下错误:

List.java:9:警告:[覆盖]类列表覆盖等于,但它和任何超类都不会覆盖hashCode方法 公共类List实现ListInterface {

我的教授没有解释hashCode是什么,但他告诉我们添加这些警告: @SuppressWarnings("覆盖")[在我们的课程定义之前] 和@SuppressWarnings("未选中")[在我们的equals()方法之前]。

在他的文档中,他说,一旦我们放了@SuppressWarnings("覆盖"),我们就不会得到那个错误。但是,我在上面做了两件事,但我仍然遇到了这个错误。

我的equals()类是这样的:

public boolean equals(Object rhs){
            boolean eq = false;
            List<T> R = null;
            Node N = null;
            Node M = null;

            if (this.getClass() == rhs.getClass()){
                    R = (List<T>)rhs;
                    eq = (this.numItems == R.numItems);

                    N = this.head;
                    M = R.head;
                    while(eq && N != null){
                            eq = (N.item == M.item);
                            N = N.next;
                            M = M.next;
                    }
            }
            return eq;

    }

任何有用的提示都会很棒!

0 个答案:

没有答案