【发布时间】:2020-05-25 14:46:50
【问题描述】:
如果我的 API 提供流,客户端是否可以修改底层集合?
例如:
class ListWrapper {
List<String> myList;
...
Stream<String> getStream() {
return myList.stream();
}
}
客户端是否可以调用listWrapper.getStream() 并以某种方式修改myList 的内容?
【问题讨论】:
-
修改
myList的结构还是修改其中的各个元素? -
要么。我想知道客户是否可以以任何方式更改 myList(例如更改元素的顺序,或更改任何给定元素的内容)。
-
这个问题略有不同。我相信这个问题假设客户端可以访问底层源集合(例如
myList)。这个问题询问的是向客户端公开流的可变性风险。
标签: java java-stream immutability