通配符通用數據類型的我有這個類:通通用在Java
public interface DataAccessor<E extends Model, U>
public class Data<T> implements DataMenuItemObservable<T> {
這個接口:
interface Listener<T> {
void onResponse(T value);
}
這個方法:
public interface DataAccessor<E extends Model, U> extends DataMenuItemObservable<E> {
...
public DataAccessor<? extends Model, ?> getPrimaryDataAccessor()
void get(int index, Context context, Listener<Data<E>> listener, ErrorListener errorListener);
...
}
,並獲得此編譯器錯誤代碼:
DataAccessor<? extends Model, ?> accessor = db.getPrimaryDataAccessor();
accessor.get(0, this, new DataAccessor.Listener<Data<? extends Model>>() {
@Override
public void onResponse(Data<? extends Model> value) {
}
}, this);
想法說incompatible types: <anonimous Listener<Data<? extends Model>>> cannot be converted to Listener<Data<CAP#1>>
我也試圖與this
但同樣的錯誤實現接口。
如何解決錯誤? 是否有一些可接受的解決方法?
什麼的'DataAccessor.get()'簽名? – shmosel
什麼是數據? – shmosel
@shmosel更新 – nikartix