假设我有一个将只读视图返回到成员列表的方法:
class Team {
private List<Player> players = new ArrayList<>();
// ...
public List<Player> getPlayers() {
return Collections.unmodifiableList(players);
}
}
进一步假设客户机所做的全部工作是立即对列表进行一次迭代。也许是为了把玩家放进一个 JList 什么的。客户端做 没有存储一个参考列表,以便以后检查!
考虑到这个常见的场景,我应该返回一个流吗?
public Stream<Player> getPlayers() {
return players.stream();
}
或者在 Java 中返回流是非惯用的?流是否被设计成总是在创建它们的同一个表达式中“终止”?