Tôi có câu hỏi về việc sử dụng Generics với bộ sưu tập.Bộ sưu tập với generics
ArrayList<Integer> al=new ArrayList<Integer>();
Chúng tôi biết rằng dòng trên có nghĩa là ArrayList
al
bị hạn chế chỉ giữ nguyên. Vì vậy, các dòng sau đưa ra một lỗi biên dịch:
al.add("wwww");
Nhưng tôi không hiểu những gì các dòng dưới đây có nghĩa là,
ArrayList al=new ArrayList<Integer>();
đâu chúng ta không cung cấp cho ArrayList<Integer>
ở phía bên trái, trong khi tuyên bố. Bây giờ dòng sau không đưa ra một lỗi biên dịch:
al.add("wwww");
Vì vậy, nếu tôi tuyên bố như
ArrayList al=new ArrayList<Integer>();
đó có nghĩa là a1
thể chấp nhận bất kỳ loại?
Sự khác nhau giữa hai khai báo này là gì?
... và IDE của bạn (nếu bạn đang sử dụng một tài khoản) có thể hiển thị cảnh báo cho nó. – Axel
@Axel: +1. Độc lập tôi đã thêm cùng một bình luận cho câu trả lời của tôi, bạn phải tin tôi ;-). –
Vì lý do nào đó, 7 người netbeans đã vô hiệu hóa các cảnh báo javac chuẩn theo mặc định. (và một sự gia tăng đáng kể trong việc nói với thực tập "sửa chữa cảnh báo loại thô của bạn.") – Affe