我从以下代码开始:
String startingValue = getMyValue();
String finishingValue = "";
if (startingValue != null) {
finishingValue = startingValue;
} else {
System.out.println("Value was null");
}
我想使用Java 8选项将其转换为如下形式:
Optional<String> startingOptional = getMyOptional();
String finishingValue =
startingOptional
.map(value -> value)
.orElse(System.out.println("value not found"));
我的问题是:有没有办法结合Java8 Optional返回值和在null上打印消息?
用途orElseGet:
Optional<String> startingOptional = getMyOptional();
String finishingValue = startingOptional.orElseGet(() -> {
System.out.println("value not found");
return "";
});
使用.map(value -> value)是没有用的:将值转换为自身不会改变任何事情。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。