在Java 8中,我越来越多地用Stream
替换集合
返回值。
所以我曾经有:
public List<Element> getElementList() {
return elements;
}
我现在使用:
public Stream<Element> streamElements() {
return elements.stream();
}
我对此的论点是:
事实上,现在,在我的代码中,返回<code>列表
显然,其中一些可以通过不可变集合来实现。
我的问题是:有人能看出这个设计的缺点吗?与返回< code>Stream相比,不可变集合有什么优势吗?
我可以想出几个例子:
但是,是的,可以简化很多处理。
我并不是说你不应该返回一个Stream,更不是说你不应该返回一个Stream,但这样做也有很多缺点:
我想说,选择返回流而不是集合也取决于您已经拥有的内容。如果集合已经物化(想想一个JPA实体已经将OneTo很多物化为Set),我可能会在集合上返回一个不可变的包装器。另一方面,如果要返回的集合是另一个集合的计算或转换的结果,则返回Stream可能是更好的选择。
我试图访问MyModelClass上的getter方法,但我的代码返回
我使用Java 8 streams尝试了以下代码: 我得到的是一个< code >列表 我正确地得到了一个
我试图编写的实际方法的简化表示,我打算使用并返回列表
我有以下清单:
我想写一个FindAll()方法,它返回所有学生对象的列表。但是CRUDRepository只有Iterable 目标是将所有学生放入一个列表中,并将其传递给API控制器,以便我可以使用http get获取所有学生。 将此方法转换为List的最佳方法是什么 在我当前的代码中,学生服务中的findAll方法给我找到的不兼容类型:Iterable。必需:列表错误。 服务 API控制器 研究报告
我已经能够验证是否会产生排序的。但是,它不会返回列表。为什么?