我面临以下问题:
我有这些课程和接口定义
public abstract class ViewModelRefreshPostListFragment>
extends RefreshPostListFragment implements IRefreshPostView {
private final ViewModelHelper mViewModeHelper = //error here
new ViewModelHelper<>();
...
}
public abstract class RefreshPostViewModel extends AbstractViewModel {}
public class ViewModelHelper> {}
public abstract class AbstractViewModel {}
public interface IRefreshPostViewCallback extends IView {}
Eclipse仍然给出了这个错误:绑定不匹配:类型R不是有界参数的有效替代< R extends AbstractViewModel< T>> ViewModelHelper< T,R>的类型
基于Java继承,我创建了这两个链:
来自ViewModelRefreshPostListFragment类定义的“链”
1)R扩展RefreshPostViewModel< T> – > R扩展了RefreshPostViewModel< R1 extends IRefreshPostViewCallback> – > R扩展AbstractViewModel< IRefreshPostViewCallback>
1.1)T扩展IRefreshPostViewCallback
1.2)T(来自RefreshPostViewModel< T>)被替换为< R1 extends IRefreshPostViewCallback>
1.1)和1.2)的结果,所以T参数应该没问题.
来自ViewModelHelper类定义的“链”
2)R扩展AbstractViewModel< T>
2.1)T扩展IView,IRefreshPostViewCallback扩展IView – > T可以被IRefreshPostViewCallback替换
如果我在1.1)&&上申请2.1) 1.2)我们看到,参数T是一致的
从1)跟随R扩展AbstractViewModel< IRefreshPostViewCallback>从2)跟随R扩展AbstractViewModel< T>从2.1)开始,T可以被IRefreshPostViewCallback取代,
如果我理解正确,则不应出现此错误,
有人可以解释一下,为什么日食会给我错误?
谢谢!