有没有比编写自定义函数更好的选择?最好是股票JDK?
如果没有,是否有比以下更好的实施:
public static <T> Iterable<T> toIterable(Optional<T> o) {
if (o.isPresent()) {
return Collections.singletonList(o.get());
} else {
return Collections.emptyList();
}
}
答案 0 :(得分:3)
使用Optional.isPresent()
通常是代码味道 - 它与!= null
没有区别。
public static <T> Iterable<T> toIterable(Optional<T> o) {
return o.map(Collections::singleton)
.orElseGet(Collections::emptySet);
}
此外,单身Set
是... singleton更好的模型。