有没有一种方法可以结合Java8 Optional返回转换后的值并在null上打印消息?

问题描述 投票:0回答:2

我以这段代码开头:

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();列表

java java-8 null optional
2个回答
0
投票

我希望这对您有用

String startingValue = getMyValue();
return Optional.ofNullable(startingValue)
.map(value ->Arrays.asList(startingValue.split(",")))
.orElseGet(()->{
System.out.println("Value was null");
return null;
}); 

0
投票

如@Deadpool所建议(名字叫!):

© www.soinside.com 2019 - 2024. All rights reserved.