我有超一流的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);
}