2015-12-15 126 views
0

我有以下代碼:Java對象:動態類型不可見

public class A implements B{ 
    private final Map<String, Map<String, Object>> processors = new ConcurrentHashMap<>(); 

... 
@override(from B) 
public void doSomething() { 
processors.putIfAbsent(new ConcurentHashMap<>()); ->compilation error 
} 

以下錯誤是加薪:

The method putIfAbsent() is undefined for the type Map<String,Map<String,object> 

有人可以向我解釋這是這個錯誤的原因?

+1

什麼是。 ???它應該是處理器的權利? –

+1

確實 - 並不清楚'@override(from B)'部分是什麼意思,我懷疑它不相關。一個簡短但完整的例子會讓事情變得更清晰。我已經添加了一個答案,我很確定你在找什麼,但你應該明確地編輯這個問題。 –

+0

另外,請指定您正在使用的是哪個版本的Java - 它會產生巨大的差異。 –

回答

1

當您致電putIfAbsent時,您可能缺少key。你只是通過value(即地圖)作爲參數。

另外:什麼是a?嘗試像

processors.putIfAbsent("a key", new ConcurrentHashMap<String, Object>());