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)?这些列表有不同的类型,我不能转换它......

4

4 回答 4

2

如果 Sales_personRef 和 Sales_person 都扩展了另一个类,比如说Person,那么您可以将这两种类型都添加到ArrayList<Person>.

请记住,如果您这样做,那么您以后从列表中获得的内容将是Person. 然后,您必须将其转换回原来的类。

于 2013-03-29T10:32:11.823 回答
0

通过将您的第二个列表声明为List<Object>.

于 2013-03-29T10:34:03.277 回答
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();
}
于 2013-03-29T10:34:22.360 回答
0

你必须在这里使用多态概念。让父类说人,然后扩展它可以工作

于 2013-03-29T10:38:34.110 回答