一位同事遇到了一個錯誤,其中使用HashMap#containsKey來驗證鍵值對是否存在。指定的鍵是不同的類型,所以該方法總是返回false。例如(假設在地圖中填充了他想要檢索對象):爲什麼HashMap#containsKey需要一個Object類型的參數?
Map<String, String> map = new HashMap<String, String>();
Long value = new Long(12);
boolean hasString = map.containsKey(value);
我的問題是:
爲什麼會出現Map實現力你把K型的按鍵和V類型的值,但containsKey()方法允許指定任何對象?
Map接口中還有其他一些方法,如get()也接受Object類型的參數。
另見http://smallwig.blogspot.com/2007/12/why-does-setcontains-take-object-not -e.html –
不好意思詢問重複的問題,我試着搜索它,但我必須使用錯誤的關鍵字。 – austen