【发布时间】:2015-08-31 07:22:37
【问题描述】:
我正在开发一个 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) 未定义。”我这里有交叉的东西吗?是否可以让一个方法处理特定接口的所有实现,只要它只被要求对所述接口定义的字段和方法进行操作?如果是这样,我的代码如何 - 或需要更改什么?
【问题讨论】: