【发布时间】:2012-11-05 10:26:31
【问题描述】:
我在 Object(Obj1) 中有一个属性
Set<AssignedService> serviceList;
public Set<AssignedService> getServiceList();
在某些情况下我正在执行以下操作
Obj1.getServiceList().clear();
Obj1.getServiceList().addAll(services);
其中还设置了服务
但我看到的最终结果是服务集有 4 个对象/数据元素 但是 Obj1.getServiceList() 在 addAll 之后返回一个空集
这里有什么问题。 AssignedService 对象是否存在问题,因为它没有实现 IComparable
【问题讨论】:
-
是的,实现
Comparable<AssignedService>会很好(并且很高兴有正确的 equals 和 hashCode 方法)。您可以检查 services.size()。应该是 0。否则我会期望至少有一个元素。也许您在空捕获的某个地方忽略了异常。您没有使用只读的 Collections.emptySet() 进行初始化? -
Collections.emptySet() 那是什么
-
有
Collections.emptySet()(和List,...)来创建一个类型安全的不可修改的零元素集。同样,一个元素有Collections.singleton...函数。 -
(1)
serviceList的实现类是什么? (2)services里有什么?调试应该会有所帮助。
标签: java collections set add