![](/img/trans.png)
[英]The method getOrDefault(String, String) is undefined for the type Map<String,String>
[英]getOrDefault for Map<String, ?>
嘗試為Map獲取或默認值:
String test = map.getOrDefault("test", "")
但這給了我一個錯誤“ Required?但有一個字符串”。 無論如何要解決這個問題?
Map<String, ?>
可以是任何類型。
getOrDefault
要求第二個參數與值具有相同的類型; 除了null
之外沒有其他可以滿足此要求的值,因為您不知道是否可以?
是String
, Integer
或其他任何值。
因為您只從映射中檢索值,所以可以安全地強制轉換為Map<String, Object>
:
Object value = ((Map<String, Object>) map).getOrDefault("key", "");
這是因為您沒有在映射中添加任何值,否則以后將使調用不安全。 並且任何值類型都可以安全地存儲在Object
引用中。
如果未找到,則此方法的實現返回給定的默認值(泛型-可以是任何類型)(AKA為null)。
default V getOrDefault(Object key, V defaultValue) {
V v;
return (((v = get(key)) != null) || containsKey(key))
? v
: defaultValue;
}
隨附的文檔鏈接: https : //docs.oracle.com/javase/8/docs/api/java/util/Map.html#getOrDefault-java.lang.Object-V-
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.