mar*_*tow 5 java optional java-8
有没有更简洁的方法来创建指定类型的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());
}
Run Code Online (Sandbox Code Playgroud)
在这里我收到一个错误:"类型不匹配:无法从Optional转换为Optional"
public Optional<V> getValue(K key) {
Node<K, V> node = getNode(key);
return isNull(node) ? Optional.ofNullable(null) : Optional.ofNullable(node.getValue());
}
Run Code Online (Sandbox Code Playgroud)
基本上,一种更简单的方法是:
public Optional<V> getValue(K key) {
return Optional.ofNullable(getNode(key))
.map(Node::getValue);
}
Run Code Online (Sandbox Code Playgroud)
如果你仍然想要坚持自己拥有的东西,你可以这样做:
public Optional<V> getValue(K key) {
Node<K, V> node = getNode(key);
return isNull(node) ?
Optional.empty() : Optional.ofNullable(node.getValue());
}
Run Code Online (Sandbox Code Playgroud)
我想你正在寻找这个:
Optional.<V>ofNullable(null);
Run Code Online (Sandbox Code Playgroud)
或者在您的情况下,如果总是传递 null:
Optional.<V>empty();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
356 次 |
| 最近记录: |