gpt4 book ai didi

java - 在 Java 中如何避免这种删除错误?

转载 作者:行者123 更新时间:2023-12-02 08:57:46 25 4
gpt4 key购买 nike

我有一个自制的存储对象,类似于Set接口(interface)方法。我想让它与 Set 兼容,这样它就可以与 Collection 兼容。问题在于它是一个泛型类,并且该泛型类使用类型变量作为方法参数。

我所说的两种方法:

我有:

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

设置界面有这样的:

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

编译器告诉我存在某种删除错误。我可以将 removeremove(T var) 更改为删除(Object var),但我不想这样做。

是否有另一种方法可以使其与 Set 兼容,而不更改我的原始方法签名?

最佳答案

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

关于java - 在 Java 中如何避免这种删除错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60382381/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com