Map<String, String>
là loại phụ của Map<?, ?>
, nhưng vì generics không phải là bất biến, điều này không có nghĩa là List<Map<String, String>>
là loại phụ của List<Map<?, ?>>
.
Nếu bạn chắc chắn rằng tất cả các khóa và giá trị là String
trường hợp bạn có thể làm điều này
List<Map<String, String>> circle = (List<Map<String, String>>) (Object) FileManager.area.getMapList("circles");
Tuy nhiên tôi sẽ không khuyên bạn nên nó bởi vì nếu bất kỳ của các phím hoặc giá trị không phải là String
s bạn có thể nhận a ClassCastException
sau này, vì vậy bạn đang vứt bỏ sự đảm bảo rằng generics được cho là cung cấp.
Một thay thế sẽ là để tạo ra một new ArrayList<Map<String, String>>()
và lặp qua các List<Map<?, ?>>
, sau đó sử dụng instanceof
để rà soát tất cả các phím và các giá trị trong mỗi Map<?, ?>
là String
. Chỉ khi kiểm tra thành công instanceof
nếu bạn thêm mục nhập.
Nguồn
2015-01-06 18:51:29
lỗi chính xác của bạn là gì. Luôn đăng lỗi chính xác của bạn khi đặt câu hỏi. Lỗi là các câu trả lời có ý nghĩa bởi bất kỳ ngôn ngữ lập trình nào. Không đăng bài giống như nói "Xe của tôi đã phá vỡ xin vui lòng giúp đỡ" và đính kèm một hình ảnh của chiếc xe. – Kon
lỗi chính xác - Danh sách
http://upload.wikimedia.org/wikipedia/commons/b/bb/Barcroft_1100_Thomas_St_Car_Damaged_by_Tree_(7536694422).jpg - vui lòng giúp –