我有以下方法
public static String convertThreeLetterWordToUpper(String str) {
String result = Arrays.stream(
str.split(" ")).map(s-> checkLength(s)).collect(Collectors.joining(" "));
return result;
}
如何在不执行空检查的情况下检查str是否为空,并返回结果的可选。
答案 0 :(得分:0)
您可以在Optional.ofNullable
中包装orignal字符串。假设checkLength返回一个字符串,则下面的返回类型为Optional<String>
。
Optional.ofNullable(str)
.map(s -> Arrays.stream(s.split(" "))
.map(string -> checkLength(string))
.collect(Collectors.joining(" ")));
如果您有要返回的默认返回值,则可以链接orElse()
或者可以使用orElseThrow()
抛出异常。
String result = Optional.ofNullable(str)
.map(...)
.orElse("someDefault");
//.orElseThrow(() -> new RuntimeException()); Or whatever makes sense