Java泛型名称clash,具有相同的擦除

我有超一流的Foo。还有一个扩展它的类Bar。

public class Bar extends Foo

在Foo中的功能:

protected void saveAll(Collection<?> many)

酒吧功能:

public void saveAll(Collection<MyClass> stuff) {

super.saveAll(stuff);

}

出现错误:

 Name clash: The method saveAll(Collection<MyClass>) of type Bar has the same erasure as saveAll(Collection<?>) of type Foo but does not override it.

我究竟做错了什么?

回答:

您正在saveAll使用不兼容的类型覆盖该方法。也许您想做类似的事情:

public class Bar extends Foo<MyClass>

功能在 Foo<E>

protected void saveAll(Collection<E> many)

和功能在酒吧:

public void saveAll(Collection<MyClass> stuff) {

super.saveAll(stuff);

}

以上是 Java泛型名称clash,具有相同的擦除 的全部内容, 来源链接: utcz.com/qa/417975.html

回到顶部