2015-06-15 34 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) { 
    ... 
}