[英]Adding list to list that extends
所以我有這種情況。 我已經完成了將一個列表的內容添加到另一列表的任務。 聽起來很簡單。 我的問題是,現有列表具有以下語法:
// Existing code
List<? extends ProductCatalog> listProduct = null;
listProduct = RetrieveService.getInstance().getListProduct("client1");
// My code is
List<? extends ProductCatalog> listProduct2 = null;
listProduct2 = RetrieveService.getInstance().getListProduct("client2");
如果listProduct是一個普通的List,則只使用AddAll。 但是,它不適用於擴展。 或最有可能,我做錯了。 因此,在此示例中,如何將listProduct2添加到listProduct。
任何幫助,將不勝感激。
以類型安全的方式不可能。 另請參見例如如何添加到列表<? 擴展Number>數據結構?
您可以將它們都合並在新的List<ProductCatalog>
,具體取決於您要實現的目標。
如果必須使用<? extends ProductCatalog>
<? extends ProductCatalog>
會很困難,但是如果您可以在類ProductCatalog中實現一個空接口,然后聲明List<your_interface> listProduct
則可以。
您可以避免在泛型中使用extends關鍵字,而僅使用<ProductCatalog>
嗎? 這樣可以使您的生活更輕松。
但是,泛型是編譯時的構造。 因此,您可以編寫一個將兩個列表作為參數且沒有泛型的方法。 這樣,您可以在列表中放入任何內容。 但這不是一個干凈的方法,並且可能會導致其他一些問題,特別是如果您進行了源代碼質量檢查;-)
add(clientProduct, clientProduct2);
private void add(List clientProduct, List clientProduct2){
clientProduct.addAll(clientProduct2);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.