0

したがって、 を受け取るメソッド がsetContainerSummaryMapありますMap<String, Map<String, Integer>>

HashMap<Long, HashMap<String, Integer>>という名前のもあり、これを名前付きのcontIdDestQuanMapSoFarに変換して、キーを相互にマップします。この方法は以下です。HashMap<String, HashMap<String, Integer>>HashMap<Long, String>contIdToScanIdMap

public HashMap<String, HashMap<String, Integer>> convertContSummaryMap() {
    HashMap<String, HashMap<String, Integer>> toRet = new HashMap<String, HashMap<String, Integer>>();
    for (Entry<Long, HashMap<String, Integer>> entry : contIdDestQuanMapSoFar.entrySet()) {
        toRet.put(contIdToScanIdMap.get(entry.getKey()), entry.getValue());
    }
    return toRet;
}

問題は、メソッドを呼び出すとsetContainerSummaryMap(currentPlan.convertContSummaryMap())、引数には適用できないというエラーが表示されることですHashMap<String, HashMap<String, Integer>>。これが機能するようにデータ型を変更するにはどうすればよいですか? ありがとう。

4

2 に答える 2

2

setContainerSummaryMapメソッドを再定義できます。

public void setContainerSummaryMap(Map<String, ? extends Map<String, Integer>> map)

または、Louis が既に提案したように、convertContSummaryMap一致するように戻り値の型を変更します。

public HashMap<String, Map<String, Integer>> convertContSummaryMap()
于 2013-07-15T22:05:52.193 に答える
1

これを機能させるには、 の型は でtoRetなければなりませんHashMap<String, Map<String, Integer>>。@SLaksが述べたように、 aHashMap<String, Map>は a と同じではありませんHashMap<String, HashMap>

もちろん、Map実際に入れる s は s のままHashMapです。

于 2013-07-15T21:58:08.747 に答える