有没有更简洁的方法来创建指定类型的Optional.ofNullable而不将其分配给变量?
工作方案:
public Optional<V> getValue2(K key) {
Node<K, V> node = getNode(key);
Optional<V> nullable = Optional.ofNullable(null);
return isNull(node) ? nullable : Optional.ofNullable(node.getValue());
}
在这里我收到一个错误:“类型不匹配:无法从Optional转换为Optional”
public Optional<V> getValue(K key) {
Node<K, V> node = getNode(key);
return isNull(node) ? Optional.ofNullable(null) : Optional.ofNullable(node.getValue());
}
基本上,一种更简单的方法是:
public Optional<V> getValue(K key) {
return Optional.ofNullable(getNode(key))
.map(Node::getValue);
}
如果你仍然想要坚持自己拥有的东西,你可以这样做:
public Optional<V> getValue(K key) {
Node<K, V> node = getNode(key);
return isNull(node) ?
Optional.empty() : Optional.ofNullable(node.getValue());
}
我想你正在寻找这个:
Optional.<V>ofNullable(null);
或者在您的情况下,如果总是传递null:
Optional.<V>empty();