2016-05-11 8 views
0

私はマップfooを以下のように宣言しています。Javaネストされたマップ宣言 - 内側のマップ具体的なタイプ

private final Map<String, Map<String, Bar>> foo = new ConcurrentSkipListMap<String, Map<String, Bar>>(); 

私は具体的なデータ型を露出し、データ型の外観をしたくないので、私はとしてそれを宣言していないので:

private final Map<String, ConcurrentSkipListMap<String, Bar>> foo = new ConcurrentSkipListMap<String, ConcurrentSkipListMap<String, Bar>>(); 

私の質問に何インナーマップの実際の型であります?内側のマップを外側のものと同じ型(ConcurrentSkipListMap)にしたい場合どのように具体的なデータ型を公開せずにそれを行う必要がありますか?

+1

'String'を別の' Map'にマップする空の 'ConcurrentSkipListMap'を作成しました。実際のタイプは、あなたが何を入れるかによって異なります。 – Kayaman

答えて

1

アウターマップをConcurrentSkipListMapではなく、Mapと宣言して、インプリメンテーションを非表示にしました。内側のマップと同じことができます。

(外側)作成したマップは空である - それについての唯一知られているものは、それはそれゆえ、あなたの質問が間違っている、(Mapを実装する任意のクラス)MapStringをマップすることである - 実際の内部のマップが存在しない(ではありませんあなたが特定の実装の使用を強制する非常に特殊な要件を持っていない限り、変数を宣言するインタフェースを使用する必要があります。

関連する問題