我只是想知道我们何时需要在if else
或嵌套null
支票上选择Optional。比如说下面有没有其他优势,或者您认为《任择议定书》可能是一种过大的杀伤力
String.valueOf(Optional.ofNullable(itemKey).map(ItemKey::getId).orElse(null));
vs
String.valueOf(itemKey == null ? null : itemKey.getId());
当我不得不像下面这样选择给定对象的嵌套项目时,我总是热衷于使用Optional.of
或Optional.ofNullable
,
private String formatCurrency(String symbol, BigDecimal value) {
return Optional.ofNullable(value)
.map(BigDecimal::doubleValue)
.map(Object::toString)
.map(val -> symbol + val.replaceAll(REGEX_REMOVE_TRAILING_ZEROS, "$2"))
.orElse("");
}
我能不能知道Optional在代码中绝对没有必要。
答案 0 :(得分:0)
如果您的代码中已经包含itemKey,则没有将其转换为Optional的意思,这只会使代码更加复杂。但是,如果您想使用可选选项,我认为这样做是更合适的:
public Optional<ItemKey> getItemKey() {
if (...) {
return Optional.of(new ItemKey());
}
return Optional.empty()
}
public void mainCode() {
String id = getItemKey().map(ItemKey::getId).orElse(null);
}