Hãy nói rằng tôi có folowing:Sử dụng Generics mà không sưu tập
List<Apple> myList = new ArrayList<Apple>();
Và nếu tôi muốn gọi myList.add(myApple)
, Java mong đợi từ myApple
có loại Apple
, không bất kỳ người khác (ngoại trừ lớp con của khóa học). Nhưng nếu tôi muốn có một đối tượng (Blender
) và có các chữ ký phương thức khác nhau theo loại được khai báo bên trong <>
và mà không có quá tải phương thức; như vậy:
Blender<Apple> Tool = new Blender<Apple>();
Tool.blendIt(new Apple()); //expects to have only apples in here
Blender<Banana> OtherTool = new Blender<Banana>();
OtherTool.blendIt(new Banana()); //only Banana's are permitted
Có thể không?
Bạn có thể kiểm tra xem phiên bản của nó là 'Banana' hay' Apple' với toán tử 'instanceof'. – enrybo
Vâng tôi có thể, nhưng nó sẽ bị hỏng ngay sau khi tôi đặt 'Strawberry' bên trong' Máy xay sinh tố ':) Vì vậy, giải pháp linh hoạt là cần thiết – TomatoMato