我遇到了以下问题。我想用以下方法覆盖超类方法:
protected<S extends T> List<S> save(List<S> entities)
方法签名。我想添加一些处理,然后拨打super.save(entities)
问题是,外部库也有protected<S extends T> Iterable<S> save (Iterable<S> entities)
方法。当我尝试调用super.save(实体)时,我面临Cannot resolve method java.util.List<S>
错误消息。你有什么线索可以解决它吗?
编辑: 好的,我们有这样的接口:
public interface SomeInterface<T> {
<S extends T> S save(S var1);
<S extends T> Iterable<S> save(Iterable<S> entities);
}
然后像这样抽象类:
public abstract class AbstractClass<T> implements SomeInterface<T> {
@Override public <S extends T> S save(S var1) {
return null;
}
@Override public <S extends T> Iterable<S> save(Iterable<S> entities) {
return null;
}
public <S extends T> List<S> save(List<S> entities) {
return null;
}
protected abstract void someAbstractMethod();
}
我想用自己的一些装饰方法实现自己的实现(对于这个简单的例子,它是方法中的抽象方法:
public class AbstractClassImpl<T> extends AbstractClass<T> {
@Override public <S extends T> S save(S var1) {
someAbstractMethod();
return super.save(var1);
}
@Override public <S extends T> Iterable<S> save(Iterable<S> entities) {
someAbstractMethod();
return super.save(entities);
}
public <S extends T> List<S> save(List<S> entities) {
someAbstractMethod();
return super.save(entities); ...//error
}
@Override protected void someAbstractMethod() {
}
}
我提到的问题出现在public <S extends T> List<S> save(List<S> entities)
这种方法中。