2015-06-15 35 views
1

我正在开发一个web开发项目,并且正在使用“新闻提要”功能处理多个应用程序。我想确保每张带有图片的项目都会来回切换,以便左右图片交替显示,即使其中的某些项目没有图片。所以,我创建了一个接口:实用程序方法需要接口并且不接受实现上述接口的类

public interface TextWithImageTile { 

    public abstract String getOrientation() ; 

    public abstract void setOrientation(String orientation) ; 

} 

现在,我所有的“新闻提要”实现该接口,无论每个人使用的任何自定义字段中使用的新闻项目。所以,我早就预料到能够实例化这个工具类来处理实现该接口的项目清单:

public class AlignmentAssigner { 

    List<TextWithImageTile> listToAssign ; 

    public AlignmentAssigner(List<TextWithImageTile> list) { 

     this.listToAssign = list ; 

    } 

    public void alignList() { 

     for (TextWithImageTile listItem : listToAssign) { 
      ... 
     } 

    } 

} 

但是现在,当我试图把它HomeItem类的列表 - 它实现TextWithImageTile接口 - 它抱怨类型不匹配。这里的实现:

List<HomeItem> homeItems = homeDAO.getHomeItems(); 

AlignmentAssigner alignmentAssigner = new AlignmentAssigner(homeItems); 

我被告知,“构造函数AlignmentAssigner(List)是未定义的。”我在这里有交叉路口吗?是否有可能让一个方法处理特定接口的所有实现,只要它只被要求操作由该接口定义的字段和方法?如果是这样,如何 - 或者我的代码中需要更改什么? enter image description here

回答

1

您应该使用

public AlignmentAssigner(List<? extends TextWithImageTile> list) { 
    ... 
}