「型の不一致を:リスト<地図<文字列、文字列>>にArrayListを<HashMapの<文字列、文字列>>から変換することはできません」の取得マップのリストをインスタンス化しながら、

ドックヤード:
List<Map<String, String>> recordMapList = new ArrayList<HashMap<String,String>>();

型の不一致:上記の行は、エラーを与えるのArrayListから変換することはできません>一覧へ>

しかし、問題は、左手側の代わりに、地図の使用HashMapの場合は消えます。これがなぜ起こるか誰かが私に言うことができます。私は、私のようなRIGH側のアサインのLinkedHashMapに同じ変数を使用している可能性があるとして、地図を含むように左側を持っている必要があり、

List<Map<String, String>> recordMapList = new ArrayList<LinkedHashMap <String,String>>();

助けてください。

ケビンCruijssen:

けれどもArrayListのサブクラスであるList、とMapのサブクラスであるHashMapList<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

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=186718&siteId=1
おすすめ