0

我有一个类似于Set interface方法的自制存储对象。我想让它兼容,Set以便它可以与Collections 兼容。问题是它是一个泛型类,而泛型类使用类型变量作为方法参数。

我说的两种方法:

我有:

remove(T var) {/*remove var*/}

Set interface有这个:

remove(Object var) {/*remove var*/}

编译器告诉我有某种擦除错误。我可以removeremove(T var)它是什么改变为删除(Object var),但我不喜欢这样做。

Set是否有另一种方法可以在不更改我原始方法签名的情况下使其兼容?

4

1 回答 1

1

(Object v)它被声明为而不是声明的原因是因为它删除了(T v)所有. 请注意,不同类的对象可以相互比较,它们相等是完全合法的,因为不要求对象属于同一类。xv.equals(x) == trueequals

于 2020-02-27T21:54:02.853 回答