如何返回扩展通配符列表?

时间:2013-01-26 22:02:08

标签: java generics

我有以下方法

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>.

它出了什么问题?我还试图将愚蠢的人复制到扩展通配符列表中,但事实证明这是一个傻瓜的差事。

1 个答案:

答案 0 :(得分:0)

对不起,我刚刚看到了发布解决方案的请求。

基本上我所做的就是将通用参数添加到列表类型中。

而不是:

List<FooImplementation> foolist = new ArrayList<>();

我用过:

List<FooImplementation<X,Y>> foolist = new ArrayList<>();

之所以有效,是因为我宣布FooImplementation类是这样的:

class FooImplementation<X,Y> implements FooInterface<X,Y>{...}

现在一切都很完美,没有错误。 感谢那些没有时间回答/评论我的问题的人。