在我的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)? 这些列表有不同的类型,我无法投射......
答案 0 :(得分:2)
如果Sales_personRef和Sales_person都扩展了另一个类,让我们说Person
,那么您可以将这两种类型添加到ArrayList<Person>
。
请记住,如果您这样做,那么您稍后从列表中获得的内容将是Person
类型。然后,您必须将其强制转换为原始类。
答案 1 :(得分:0)
将第二个列表声明为List<Object>
。
答案 2 :(得分:0)
您需要转换第二个列表
接受的项目中第一个列表的每个项目sales_persons.addAll(convertSalesPersons(sales_personsRef));
with:
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();
}
答案 3 :(得分:0)
你必须在这里使用多态概念。让一个父类说人,然后扩展它将起作用