1

Object(Obj1)にプロパティがあります

Set<AssignedService> serviceList;
public Set<AssignedService> getServiceList();

私は特定のインスタンスで以下の操作を行っています

Obj1.getServiceList().clear();
Obj1.getServiceList().addAll(services);

サービスも設定されている場所

しかし、最終結果として私が見るのは、サービスセットには4つのオブジェクト/データ要素がありますが、Obj1.getServiceList()はaddAllの後に空のセットを返します

ここでの問題は何ですか。IComparableを実装していないため、AssignedServiceオブジェクトに問題がありますか?

4

2 に答える 2

3

あなたは最初にこの素晴らしい作品を読むべきです.equals()

次に、他の人が指摘しているように、クラスの実装equals() クラスを確認します。おそらく根本的な原因はここにあります。.hashcode()AssignedService

呼び出しの戻り値を確認することもでき.addAll(...)ます-false基になるSetものがメソッド呼び出しによって変更されていないことを示します。

乾杯、

于 2012-11-05T11:09:58.597 に答える
0

AssignedService の equals() の実装を確認してください。

Set : 重複する要素を含まないコレクション。より正式には、セットには、e1.equals(e2) のような要素 e1 と e2 のペアが含まれず、最大でも 1 つの null 要素が含まれます。その名前が示すように、このインターフェイスは数学的集合の抽象化をモデル化します。

于 2012-11-05T10:30:32.540 に答える