将null值放入HashMap是不可能的

时间:2012-06-01 13:55:13

标签: java android null hashmap

我正在编写Android应用程序并使用HashMap<String,MyClass>。根据Java和Android文档,HashMap应该接受空键和值。但是,奇怪的是,我不能将null值放入我的地图中。在代码中:

myMap.put(1, null);

我收到了错误:

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

为什么?什么可能是错的,如何解决?

5 个答案:

答案 0 :(得分:13)

在这种情况下,价值不是问题。由于HashMap被声明为具有String键并且您正在尝试放入一个int键,因此它不会抱怨值而是键。

答案 1 :(得分:7)

因为您正在使用int类型的键,并且它被声明为除String类型的键之外。

答案 2 :(得分:2)

声明HashMap具有String键,并且您尝试放置一个int键。

在您的情况下,您可以使用以下内容:

myMap.put("1", null);

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

答案 3 :(得分:1)

如果要将Integer用作Map的键,请将Map定义更改为:

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

其他明智的做法是使用String作为地图的关键:

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

答案 4 :(得分:0)

首先尝试找出错误然后寻找所需的解决方案。因为我们的大多数问题都将通过查看错误描述来解决。它清楚地告诉你使用了int而不是string。