2012-06-01 50 views
-7

我正在編寫Android應用程序並使用HashMap<String,MyClass>。根據Java和Android文檔,HashMap應該同時接受null鍵和值。但奇怪的是,我不能將空值放入我的地圖中。在代碼:將空值放入HashMap不可能以某種方式

myMap.put(1, null); 

,我發現了錯誤:

The method put(String, MyClass) in the type HashMap<String,MyClass> is not applicable for the arguments (int, null)

這是爲什麼?什麼可能是錯誤的以及如何解決?

+0

你只需要先看語言的基礎知識,然後來到這裏。 – Renetik

回答

12

在這種情況下,值不是問題。由於HashMap被聲明爲擁有一個String鍵,並且您試圖放入一個int鍵,所以它不會抱怨該值,而是鍵。

+0

你真是太棒了!我會在9分鐘內接受你的回答;-)該網站現在不允許這樣做。 – Stan

6

因爲您使用的是int類型的鍵,並且它被聲明爲除了類型爲String的鍵。

2

HashMap被聲明爲擁有一個String鍵,並且您試圖放置一個int鍵。

在你的情況,你可以使用以下命令:

myMap.put("1", null); 

myMap.put(1 + "", null); 
0

第一次嘗試找出錯誤然後尋找所需solution.Because我們大部分的問題都將迎刃而解通過查看錯誤描述。它清楚地表明你已經使用int而不是字符串。

1

如果你想使用整數作爲你的地圖的一個鍵,然後改變你的地圖定義:

Map<Integer,MyClass> myMap = new HashMap(); 
myMap.put(1, null); 

其他明智地使用字符串作爲地圖的關鍵:

Map<String,MyClass> myMap = new HashMap(); 
myMap.put("1", null); 
相關問題