我以这段代码开头:
String startingValue = getMyValue();
List<String finishingValue = new ArrayList;
if (startingValue != null) {
finishingValue = Arrays.asList(startingValue.split());
} else {
System.out.println("Value was null");
}
我想使用Java 8选项将其转换为类似这样的内容:
Optional<String> startingOptional = getMyOptional();
List finishingValue =
startingOptional
.map(value -> Arrays.asList(value.split(",")))
.orElseGet(() -> {
System.out.println("value not found");
return "";
});
现在我可以执行此操作-但这并没有真正简化它。
String startingValue = getMyValue();
String finishingValue = startingValue
.orElseGet(() -> {
System.out.println("value not found");
return "";
});
List<String> finishingValueList = new ArrayList();
if (startingValue.isPresent()) {
finishingValueArray = startingValue.get().split(",");
finishingValueList = Arrays.asList(finishingValueArray);
}
我的问题是:有没有办法结合Java8 Optional返回值和在null上打印消息?] >> 注意,这与this question不同,因为我正在对值进行附加转换。
我从以下代码开始:字符串startingValue = getMyValue();列表
我希望这对您有用
String startingValue = getMyValue();
return Optional.ofNullable(startingValue)
.map(value ->Arrays.asList(startingValue.split(",")))
.orElseGet(()->{
System.out.println("Value was null");
return null;
});
如@Deadpool所建议(名字叫!):