Có cách nào để thực hiện việc triển khai sau theo cách an toàn không?Java Generics đặt trên Bản đồ <String,? mở rộng Danh sách <String>>
public void myMethod(Map<String, ? extends List<String>> map)
{
map.put("foo", Collections.singletonList("bar");
}
Triển khai trên không hoạt động. Nó yêu cầu Map<String, ? super List<String>>
để biên dịch phương thức map.put()
chính xác. Nhưng myMethod sẽ không chấp nhận bất kỳ subtype nào của List theo cách này. Vì vậy, tôi phải sử dụng Map<String, ? extends List<String>>
để thay thế. Làm thế nào tôi có thể giải quyết vấn đề này một cách an toàn?
+1 để có giải thích tốt (giờ đây bạn có thể nhìn thấy generics của mình: P). –
Rất tiếc. Tôi tiếp tục nghĩ rằng vì SOF lọc văn bản anyway rằng nó sửa chữa các công cụ khung góc cạnh. À ... – KitsuneYMG