2013-03-29 69 views
0

在我的Java EE項目的另一個列表的列表,我有2個ArrayList對象:添加在不同類型的

private ArrayList<Sales_personRef> sales_personsRef = new ArrayList<Sales_personRef>(); 

private ArrayList<Sales_person> sales_persons = new ArrayList<Sales_person>(); 

我的問題是:如何在第二個列表中添加我的第一個列表(sales_personsRef)? 這些名單有不同的類型,我不能投它...

+2

這真的取決於這兩種類型是什麼以及它們如何相互關聯。 – NPE

+1

不要使用泛型,讓列表中的對象。 –

+0

你想添加arraylist或數據屬性? – Biswajit

回答

0

您需要將第一列表中的每個項目轉換成第二列表與接受

sales_persons.addAll(convertSalesPersons(sales_personsRef)); 

項目:

private static Collection<? extends Sales_person> convertSalesPersons(ArrayList<Sales_personRef> sales_persons) { 
    List<Sales_person> persons = new ArrayList<Sales_person>(); 
    for (Sales_personRef sales_personRef : sales_persons) { 
     persons.add(converSalesPersonRefToSalesPerson(sales_personRef)); 
    } 
    return persons; 
} 
private static Sales_person converSalesPersonRefToSalesPerson(Sales_personRef sales_personRef) { 
    //implement the conversion here 
    return new Sales_person(); 
} 
+0

好吧,它現在的作品謝謝! –

2

如果Sales_personRef和Sales_person都擴展另一個類,比方說Person,那麼你可以這兩個類型的一個ArrayList<Person>補充。

請記住,如果你這樣做,那麼你以後得到的名單將是Person。然後您將不得不將其重新轉換回原來的類。

0

通過聲明第二個列表爲List<Object>

0

你要在這裏使用多態的概念。讓一個父類說人,然後擴展它將工作

相關問題