假设我有一个 void 方法,它只对对象进行转换,不返回任何值,我想在流 map() 函数的上下文中使用它,如下所示:
public List<MyObject> getList(){
List<MyObject> objList = ...
return objList.stream().map(e -> transform(e, e.getUuid())).collect(Collectors.toList());
}
private void transform(MyObject obj, String value){
obj.setUuid("prefix" + value);
}
该示例是为简单起见而编造的——实际方法是在做其他事情,而不仅仅是混淆对象的 UUID。
无论如何,在上述情况下怎么可能使用 void 方法?当然,我可以让该方法返回转换后的对象,但这不是重点并且违反了设计(该方法应该是无效的)。
原文由 Nestor Milyaev 发布,翻译遵循 CC BY-SA 4.0 许可协议
似乎这是强制使用 java 8 流的情况。相反,您可以使用 forEach 实现它。