栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

我应该公开Stream吗 在我的界面上?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

我应该公开Stream吗 在我的界面上?

您在问错问题。毕竟,同时支持这两者并不难,例如

Collection<Foo> getStuff();default Stream<Foo> stuff() {    return getStuff().stream();}

因此使用您的界面的代码不需要显式

stream()
调用,而实现者
interface
也无需理会它。

由于您总是

Stream
通过
Collection.stream()
或显式地提供支持,因此问题是您是否要
公开
Collection
。虽然
Stream
Collection
后端提供a便宜,
Collection
但从a
收集a却很昂贵
Stream


因此,公开两种方式的接口都表明它们同等可用,而对于不使用

Collection
后端的实现,这些方式中的一种可能比另一种昂贵。

因此,如果您确定所有实现(包括将来的实现)将始终使用(或必须支持)

Collection
,尽管API作为
Collection
支持某些
Stream
不支持的操作,将其公开可能会很有用。如果您支持通过暴露的修改基础数据,则尤其如此
Collection

否则,

Stream
仅支持访问可能是更好的选择。这使实现可以自由使用除a之外的其他后端
Collection
。但是,这也意味着此API不支持Java
8之前的Java版本。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/574288.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号