-4
void foo(Item item) {
    LinkedList<Item> items = new LinkedList<Item>();
    items.add(item);
    Item i = items.getLast();
    boolean b = i.equals(item);
}

bですfalse。私はそれが真実であるべきだと思います。なんで?

4

1 に答える 1

-2

クラスで正しくオーバーライドするようにしてequals()ください。正しく調べた後、OPの場合、によって提供されるメソッドのデフォルトの実装が機能するようです。hashCode()Itemequals()java.lang.Object

equals()クラス内の不完全な実装がItemこの問題を引き起こしているようです。

于 2013-07-17T05:18:35.790 に答える