Từ Effective Java Chương 5 (generics):Loại tham số vs wildcard vô biên
// Two possible declarations for the swap method public static <E> void swap(List<E> list, int i, int j); public static void swap(List<?> list, int i, int j);
nào trong hai tờ khai này là một lợi thế, và tại sao? Trong API công khai, thứ hai là tốt hơn bởi vì nó đơn giản hơn. Bạn chuyển vào danh sách - bất kỳ danh sách nào - và phương thức hoán đổi các phần tử được lập chỉ mục. Không có tham số kiểu cần lo lắng. Theo quy tắc, nếu tham số kiểu chỉ xuất hiện một lần trong khai báo phương thức, hãy thay thế nó bằng ký tự đại diện.
Tôi không hiểu, tại sao tùy chọn thứ hai đơn giản hơn cho khách hàng của API của tôi? Tôi có thể chuyển các tham số tương tự cho phương thức thứ nhất và thứ hai. Ngoài ra, thứ hai yêu cầu phương pháp trợ giúp để chụp ký tự đại diện. Ai đó có thể giải thích lý do tại sao thứ hai được đề nghị? Cảm ơn!
câu trả lời có thể có: http://stackoverflow.com/questions/6231973/difference-between-list-list-listt-liste-and-listobject?rq=1 –