Tôi có một câu hỏi liên quan Generics:chi tiết về "siêu" ký tự đại diện trong generics java
Map<? super String, ? super String> mappa1 = new HashMap<Object,Object>();
với siêu nó có thể để nhanh chóng một HashMap<Object,Object>
cho một <? super String>
. Tuy nhiên, sau đó bạn có thể thêm các đối tượng chỉ mở rộng String (trong trường hợp này chỉ là String). Tại sao chúng không bị cấm bởi lỗi biên dịch cũng như xảy ra với ký tự đại diện extends
. Ý tôi là nếu đã từng tạo Map <Object, Object>
thì chỉ có thể thêm Chuỗi .. tại sao không bắt buộc phải tạo một Map<String, String>
ngay từ đầu? (giống như nó xảy ra với ký tự đại diện extends
)
Một lần nữa tôi biết sự khác biệt giữa super
và extends
liên quan đến generics. Tôi chỉ muốn biết các chi tiết tôi đã đề cập đến.
Xin cảm ơn trước.
Tuy nhiên sau đó bạn có thể thêm các đối tượng chỉ kéo dài chuỗi (trong trường hợp này chỉ Chuỗi chính nó) Bạn có thể thêm CharSequences và Object, không objets kéo dài chuỗi. – Nimajen
@Nimajen được đề cập trong câu hỏi. – Rollerball
xin lỗi, phím sai. Nhận xét của tôi chưa hoàn chỉnh. – Nimajen