Tôi đã đọc java Generics, tôi đã xem qua một truy vấn thú vị. Câu hỏi của tôi là như sau.Java Generics cho Upper bound & lower bound cards hoang dã
Đối với một ký tự đại diện bị chặn trên
public static void printList(List<? extends Number> list) { for (int i = 0; i < 10; i++) { list.add(i);// gives compilation error } }
Đối với một kí hiệu wildcard bao thấp hơn
public static void printList(List<? super Integer> list) { for (int i = 0; i < 10; i++) { list.add(i);// successfully compiles } }
Tôi đang bối rối với điều này bởi vì nhìn vào giấy tờ Sun Oracle Tôi hiểu rằng mã nên biên dịch cho điểm 1 cũng như
Upper Bound Wildcard Lower Bound Wildcard
Có thể ai giúp tôi hiểu điều này không?
@baraky: cảm ơn vì liên kết Tôi đã bỏ lỡ bằng cách nào đó ... nhưng câu hỏi vẫn là tại sao nó không biên dịch khi loại Chung biết rằng nó phải là một lớp mở rộng theo Số. Xin lỗi vì câu hỏi dư thừa. Nó vẫn chưa rõ ràng cho tôi. – chaosguru