List<Map<String, String>> recordMapList = new ArrayList<HashMap<String,String>>();
型の不一致:上記の行は、エラーを与えるのArrayListから変換することはできません>一覧へ>
しかし、問題は、左手側の代わりに、地図の使用HashMapの場合は消えます。これがなぜ起こるか誰かが私に言うことができます。私は、私のようなRIGH側のアサインのLinkedHashMapに同じ変数を使用している可能性があるとして、地図を含むように左側を持っている必要があり、
List<Map<String, String>> recordMapList = new ArrayList<LinkedHashMap <String,String>>();
助けてください。
けれどもArrayList
のサブクラスであるList
、とMap
のサブクラスであるHashMap
、List<Map>
のサブクラスではありませんList<HashMap>
。同様に、あなたはキャストすることはできませんList<HashMap>
しList<Map>
。私たちがすることができれば、それは我々がのは言わせて追加することができますを意味しますTreeMap
私たちにList<Map>
、その後にキャストList<HashMap>
ための当初の契約に違反し、List<HashMap>
。
場合は個人的に私はちょうどダイヤモンド演算子(Javaの7+)を使用することになりrecordMapList
-instanceがすぐに作成されます。
List<Map<String, String>> recordMapList = new ArrayList<>();
それは他の場所で作成されます場合にのみList
することができArrayList
ますが、残りの部分は同じになります。(注:もちろん、まだここにもダイヤモンド演算子を使用することができますが、インスタンスと、実際のフィールドを作成するが分離されている場合、私は個人的にはにジャンプせずに、リストに入って何種類即座に明確ですので、種類を使用することを好みますコード内の実際のフィールド。)
List<Map<String, String>> recordMapList;
...
recordMapList = new ArrayList<Map<String, String>>();
どちらの場合も、あなたの追加することができますHashMap<String, String>
にインスタンスをrecordMapList
。