一尘不染

使用列表或集合更好吗?

java

我有一个在列表中存储一些数据的对象。该实现可能会在以后更改,并且我不想向最终用户公开内部实现。但是,用户必须具有修改和访问此数据集合的能力。目前我有这样的事情:

public List<SomeDataType> getData() {
   return this.data;
}

public void setData(List<SomeDataType> data) {
   this.data = data;
}

这是否意味着我已允许内部实施细节泄漏出去?我应该这样做吗?

public Collection<SomeDataType> getData() {
   return this.data;
}

public void setData(Collection<SomeDataType> data) {
   this.data = new ArrayList<SomeDataType>(data);
}

阅读 196

收藏
2020-12-03

共1个答案

一尘不染

这仅取决于您是否希望您的用户能够索引数据?如果是,请使用列表。两者都是接口,因此您不会泄漏实现细节,实际上,您只需要确定所需的最低功能即可。

2020-12-03