Đây có lẽ là một sự hiểu lầm đơn giản về phía tôi.Không thể truyền một HashMap <String, String> đến một Giao diện mở rộng Bản đồ <String, String>
Có một giao diện đơn giản:
public interface IParams extends Map<String,String> {
}
Sau đó, tôi cố gắng sử dụng:
IParams params = (IParams) new HashMap<String,String>();
Passes cú pháp và biên dịch nhưng khi chạy tôi nhận được:
java.lang.ClassCastException: java.util.HashMap cannot be cast to com.foobar.IParams
Bất kỳ cái nhìn sâu sắc nơi sự hiểu lầm của tôi về Generics là trong trường hợp này?
You are not hiểu lầm generics, bạn đang hiểu nhầm thừa kế . – Marcelo
Bất kỳ lý do gì để mở rộng Bản đồ? Bạn có ghi đè bất kỳ phương pháp nào không? – kosa
Mục đích là tạo một giao diện che giấu các generics, và cũng để giữ (không được hiển thị trong ví dụ) các định nghĩa chuỗi khóa bản đồ –