假设我有一个 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 方法? 当然,我可以让该方法返回转换后的对象,但这不是重点并且违反了设计(该方法应该是无效的)。
最佳答案
这似乎是强制使用 java 8 流的情况。相反,您可以使用 forEach 实现它。
List<MyObject> objList = ...
objList.forEach(e -> transform(e, e.getUuid()));
return objList;
关于Java 使用 void 方法进行流映射?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41719914/