为了账号安全,请及时绑定邮箱和手机立即绑定

具有类型的可选空值

具有类型的可选空值

慕标琳琳 2021-08-25 17:14:16
是否有更简洁的方法来创建指定类型的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());} 在这里我收到一个错误:“类型不匹配:无法从可选转换为可选”public Optional<V> getValue(K key) {    Node<K, V> node = getNode(key);    return isNull(node) ? Optional.ofNullable(null) : Optional.ofNullable(node.getValue());}
查看完整描述

2 回答

?
慕后森

TA贡献1802条经验 获得超5个赞

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


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

}



查看完整回答
反对 回复 2021-08-25
?
倚天杖

TA贡献1828条经验 获得超3个赞

我想你正在寻找这个:

Optional.<V>ofNullable(null);

或者在你的情况下,如果总是传递一个空值:

Optional.<V>empty();


查看完整回答
反对 回复 2021-08-25
  • 2 回答
  • 0 关注
  • 160 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信