Để thêm vào @subtenante, Java được thiết kế sao cho Java sẽ luôn tương thích ngược. Generics không cho phép đặt sai loại, vì điều này không phá vỡ khả năng tương thích ngược. Cách dễ dàng để đảm bảo rằng phím bên phải đang được sử dụng là thực hiện điều này.
K key = null;
V value = null;
Map<K,V> mapped = new HashMap<K,V>()
.......//set the key and value..........
mapped.put(key, value)
.....
V var = mapped.get(key);
Sự cố được giải quyết.
Một cảnh báo trước nữa về generics, bất kỳ đứa trẻ nào của một lớp cũng có thể được đặt vào một bộ sưu tập.
Number k= null;
Number v= null;
Map<Number,Number> mapped = new HashMap<Number,Number>()
.......//set the key and value..........
k = double someDouble;
v = int someInt;
mapped.put(k, v)
.....
Điều này có thể gây ra một số lỗi lớn !!
Một số câu trả lời hay có thể tìm thấy ở đây: [Lý do gì Map.get (khóa đối tượng) không phải là (đầy đủ) chung] http://stackoverflow.com/questions/857420/what-are-the-reasons-why-map-getobject-key-is-not-fully-generic) – NickDK