我正在开发一个网络开发项目,我正在使用" news feed"功能。我想确保带有图片的每个项目来回翻转一个开关,以便图片左右交替,即使其间的某些项目没有图片。所以,我创建了一个界面:
public interface TextWithImageTile {
public abstract String getOrientation( ) ;
public abstract void setOrientation( String orientation ) ;
}
现在,我的所有"新闻Feed"使用实现该接口的新闻项,无论每个人使用哪个自定义字段。所以,我原本希望能够实例化这个实用程序类来处理实现该接口的项目列表:
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 );
我告诉过,&#34;构造函数AlignmentAssigner(List)未定义。&#34;我这里有东西吗?是否有可能让方法处理特定接口的所有实现,只要它只被要求操作由所述接口定义的字段和方法?如果是这样,我的代码中的方式或需要更改的内容是什么?
答案 0 :(得分:1)
你应该使用
public AlignmentAssigner(List<? extends TextWithImageTile> list) {
...
}