我有以下方法
public List<? extends FooInterface<X,Y>> getList()
在具有列表成员的类中:
List<FooImplementation> foolist = new ArrayList<>();
我尝试做类似的事情:
public List<? extends FooInterface<X,Y>> getList(){
return foolist;
}
但它不起作用。
错误是:
Incompatible types.
Required List<? extends FooInterface<X,Y>>
Found List<FooImplementation>.
它出了什么问题?我还试图将愚蠢的人复制到扩展通配符列表中,但事实证明这是一个傻瓜的差事。
答案 0 :(得分:0)
对不起,我刚刚看到了发布解决方案的请求。
基本上我所做的就是将通用参数添加到列表类型中。
而不是:
List<FooImplementation> foolist = new ArrayList<>();
我用过:
List<FooImplementation<X,Y>> foolist = new ArrayList<>();
之所以有效,是因为我宣布FooImplementation
类是这样的:
class FooImplementation<X,Y> implements FooInterface<X,Y>{...}
现在一切都很完美,没有错误。 感谢那些没有时间回答/评论我的问题的人。