Я должен это знать, но почему-то я не могу это понять.листинг Список <Object> в список <Карта <String, Object >>
Почему я не могу перечислить список объектов List<Object>
в список карт List<Map<String, Object>>
? Каждый объект в списке является объектом типа Map<String, Object>
, поэтому почему кастинг невозможен?
Что я могу сделать, это создать new ArrayList<Map<String, Object>>();
и перебрать список и добавить каждый элемент в список.
List<Object> dataList;
..
//Why doesn't this work?
List<Map<String, Object>> rxData = (List<Map<String, Object>>)dataList;
//This works, but is there a better way?
rxData = new ArrayList<Map<String, Object>>();
for (Object data : dataList) {
rxData.add((Map<String, Object>)data);
}
Почему? Потому что дженерики Java не подлежат оплате. Невозможно, чтобы JVM действительно проверила, что актерский состав верен. Если вы просто хотите это сделать, я думаю, что '@SuppressWarnings (" unchecked ")' является решением, хотя я не тестировал это. – markspace
Java generics FAQ: http://www.angelikalanger.com/GenericsFAQ/FAQSections/TechnicalDetails.html#What%20is%20the%20SuppressWarnings%20annotation? – markspace