带有类型的可选空值

时间:2018-09-02 10:16:54

标签: java java-8 optional

是否有一种更简洁的方法来创建指定类型的 Optional.ofNullable 而不将其分配给变量?

有效的解决方案:

<div class="hud-settings-grid"> </div>

我在这里收到错误消息:“类型不匹配:无法从可选转换为可选”

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());
} 

2 个答案:

答案 0 :(得分:6)

基本上,更简单的方法是:

{0}

如果您仍然想坚持自己拥有的东西,可以这样做:

public Optional<V> getValue(K key) {
    return Optional.ofNullable(getNode(key))
                   .map(Node::getValue);
}  

答案 1 :(得分:2)

我认为您正在寻找这个:

Optional.<V>ofNullable(null);

或者在您的情况下,如果始终传递null:

Optional.<V>empty();