- 我想要实现的目标是:
我想转换一个StringBuilder+forloop,如下所示:
public String question(List<MyPojo> myPojos) {
final StringBuilder stringBuilder = new StringBuilder();
for (MyPojo myPojo : myPojos) {
try {
String json = objectMapper.writeValueAsString(myPojo);
stringBuilder.append(json).append("\n");
} catch (JsonProcessingException e) {
LOGGER.warn("bad");
}
}
return stringBuilder.toString();
}
转换为stream() struct .这不是为了性能、可读性或任何东西,我只是想try 转换.
- 我做了什么try :
public String question(List<MyPojo> myPojos) {
var stringBuilder = new StringBuilder();
return myPojos.stream().map(onePojo -> delegate(onePojo, stringBuilder)).toString();
}
public StringBuilder delegate(MyPojo oneMyPojo, StringBuilder stringBuilder) {
try {
var json = objectMapper.writeValueAsString(oneMyPojo);
stringBuilder.append(json).append("\n");
} catch (JsonProcessingException e) {
LOGGER.warn("bad");
}
return stringBuilder;
}
- 发行
遗憾的是,结果字符串与for循环提供的字符串完全不同.
- 问题
我的代码中遗漏了什么?