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 番目のリストに追加するにはどうすればよいですか? これらのリストにはさまざまなタイプがあり、キャストできません...

4

4 に答える 4

2

Sales_personRef と Sales_person の両方が別のクラスを拡張する場合、たとえば の場合Person、これらの型の両方を に追加できますArrayList<Person>

このようにすると、後でリストから取得するものがタイプになることに注意してくださいPerson。その後、元のクラスにキャストし直す必要があります。

于 2013-03-29T10:32:11.823 に答える
0

ここではポリモーフィズムの概念を使用する必要があります。親クラスに人を言わせ、それを拡張して機能させる

于 2013-03-29T10:38:34.110 に答える
0

2 番目のリストをList<Object>.

于 2013-03-29T10:34:03.277 に答える
0

2番目のリストで受け入れられるアイテムの最初のリストの各アイテムを変換する必要があります

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 に答える