2013-03-29 30 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

你要在这里使用多态的概念。让一个父类说人,然后扩展它将工作

相关问题