0

我有以下方法

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

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

4

1 回答 1

0

抱歉耽搁了,我刚刚看到发布解决方案的请求。

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

代替 :

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

我用了 :

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

这很有效,因为我这样声明了这个FooImplementation类:

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

现在一切正常,没有错误。感谢那些抽出时间回答/评论我的问题的人。

于 2013-01-27T02:39:28.583 回答