簡體   English   中英

帶類型的可選null值

[英]Optional null value with a type

有沒有更簡潔的方法來創建指定類型的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();    

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM