이 사실을 알고 있어야하지만 어떤 이유로이 사실을 이해할 수 없습니다.캐스트 목록 <Object> 목록에 <Map <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의 generics는 재정의 할 수 없기 때문에. JVM이 실제로 캐스트를 검사 할 수있는 방법이 없습니다. 어쨌든 그냥하고 싶다면'@SuppressWarnings ("unchecked")가 해결책이라고 생각합니다. – markspace
Java generics FAQ : http://www.angelikalanger.com/GenericsFAQ/FAQSections/TechnicalDetails.html#What%20is%20the%20SuppressWarnings%20annotation? – markspace