-10

我正在编写一个 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).

这是为什么?什么可能是错误的以及如何解决?

4

5 回答 5

13

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

于 2012-06-01T13:57:53.433 回答
7

因为您使用的是 int 类型的键,并且它被声明为除了 String 类型的键。

于 2012-06-01T13:57:54.633 回答
2

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

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

myMap.put("1", null);

或者

myMap.put(1 + "", null);
于 2013-05-28T14:42:15.257 回答
0

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

于 2015-02-25T13:25:27.617 回答
0

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

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

其他明智的使用字符串作为你的地图的关键:

Map<String,MyClass> myMap = new HashMap();
myMap.put("1", null);
于 2017-01-10T12:01:23.563 回答