Jus*_*n A 1 java lambda java-8 java-stream
我试图建立一个值的名称地图.我有这个方法getValue两次调用该方法.一旦确保返回值不为null,然后再次实际收集该值.我试图弄清楚如何添加一个lambda块来捕获返回对象.
Arrays.stream(enums)
.collect(Collectors.toMap(
en -> en.name(),
en -> ((issue.getValue(en) != null) ? issue.getValue(en) : "")
));
Run Code Online (Sandbox Code Playgroud)
当我尝试不同的安排时,我不断收到各种IDE语法错误.我觉得这应该是微不足道的,但它却在逃避我.任何帮助都是极好的...
只需使用块而不是单个表达式:
theEnum -> { String v = issue.getValue(theEnum); return v != null ? v : ""; }
Run Code Online (Sandbox Code Playgroud)
你可能想用 Optional#ofNullable#orElse
Arrays.stream(enums)
.collect(Collectors.toMap(
en -> en.name(),
en -> Optional.ofNullable(issue.getValue(en)).orElse("")
));
Run Code Online (Sandbox Code Playgroud)