以下のようにオブジェクトを作成しようとすると:
Map<Integer, Map<String, Integer>> myMap = new HashMap<Integer, HashMap<String, Integer>>();
構文的に何が間違っていますか、誰かが私を説明できますか?
以下のようにオブジェクトを作成しようとすると:
Map<Integer, Map<String, Integer>> myMap = new HashMap<Integer, HashMap<String, Integer>>();
構文的に何が間違っていますか、誰かが私を説明できますか?
これを試して
Map<Integer, ? extends Map<String, Integer>> myMap = new HashMap<Integer, HashMap<String, Integer>>();
より簡単な例で説明する方が簡単です
Set<Number> set = new HashSet<Integer>();
Double を Integers の HashSet に追加できるため、許可されていません
set.add(1.0)
ご了承ください
Set<? extends Number> set = new HashSet<Integer>();
セット以外には何も追加できませんnull
。ただし、数値のみを読み取ることができます
ここで詳細情報を見つけることができますhttp://docs.oracle.com/javase/tutorial/extra/generics/wildcards.html
次のようなものが必要です。
Map<Integer, Map<String, Integer>> myMap = new HashMap<Integer, Map<String, Integer>>();
myMap.put(1, new HashMap<String, Integer>());
これを試して:
Map<Integer, HashMap<String, Integer>> myMap = new HashMap<Integer, HashMap<String, Integer>>();