Tôi có mã kiểm tra sau:Không thể biên dịch một lớp mà thực hiện một giao diện không có loại tham số
public interface Container<I> {
public void addClass(Class<?> clazz);
}
public class MyContainer implements Container {
public void addClass(Class<?> clazz) {}
}
và tôi nhận được lỗi sau khi cố gắng biên dịch hai lớp này:
MyContainer. java: 1: MyContainer không trừu tượng và không ghi đè lên phương thức trừu tượng addClass (java.lang.Class) trong vùng chứa
Nếu tôi thêm loại vào giao diện vùng chứa e trong MyContainer (chẳng hạn như <Object>
), tôi không gặp lỗi.
Vấn đề là tôi giới thiệu tham số kiểu cho vùng chứa, là một phần của API công khai, do đó, để tương thích, tôi không thể có tất cả các lớp triển khai không thể biên dịch được.
Bất kỳ ai có ý tưởng nào? Đây có phải là vấn đề xóa bỏ loại không? Có cách giải quyết nào không?
@ xây dựng Skeet- sẽ helpful..TIA – hakish
Tôi hiểu rồi, cảm ơn bạn Jon. Đã chấp nhận. –