-10

私はAndroidアプリケーションを作成して使用していますHashMap<String,MyClass>。JavaとAndroidのドキュメントによると、HashMapはnullキーと値の両方を受け入れる必要があります。しかし、不思議なことに、マップに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を使用したことを明確に示しています。

于 2015-02-25T13:25:27.617 に答える
0

マップのキーとして整数を使用する場合は、マップ定義を次のように変更します。

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 に答える