Pav*_*nik 2 java optional java-8
如何String从Optional<String>usingifPresent和 avoid返回值NullPointerException?
例子:
public String longestName() {
Optional<String> longName = someList.stream().reduce((name1, name2) -> name1.length() > name2.length() ? name1 : name2);
// If I do not want to use following
// return longName.isPresent() ? longName.get() : "not present";
// Can I achieve this using longName.ifPresent or longName.orElse("not present");
}
Run Code Online (Sandbox Code Playgroud)
要返回可选项的值,或者如果可选项没有值则返回默认值,您可以使用orElse(other).
public String longestName() {
Optional<String> longNameOpt = someList.stream().max(Comparator.comparingInt(String::length));
return longNameOpt.orElse("not present");
}
Run Code Online (Sandbox Code Playgroud)
请注意,我重新编写了用于查找最长名称的代码:您可以直接使用max(comparator)比较器比较每个字符串的长度。一个这样的比较器可以通过调用Comparator.comparingInt(keyExtractor)作为方法引用的密钥提取器来获得String::length。
| 归档时间: |
|
| 查看次数: |
10313 次 |
| 最近记录: |