Tôi đang viết một số lớp bằng Generics nhưng tôi không thể tìm thấy giải pháp cho lớp SolutionSubset và vì vậy tôi nhận được thông số lỗi " S không nằm trong giới hạn của nó ". Tôi đã đọc các câu hỏi trước về cùng một lỗi nhưng tôi không thể giải quyết vấn đề này cho trường hợp của mình. Ai có thể giúp tôi cải thiện kiến thức về Generics của tôi? Mọi tham chiếu cho sách hay (tôi có thể tìm thấy trong google nhiều thông tin nhưng nếu ai đó có thể giới thiệu sách, hướng dẫn, v.v. sẽ được chào đón). Mặc dù tôi đã cố gắng ghi nhớ các quy tắc đặt câu hỏi nhưng tôi xin lỗi nếu câu hỏi của tôi không đáp ứng các quy tắc này.Về lỗi khi sử dụng Java generics: "type parameter S không nằm trong giới hạn"
Tôi có các lớp và các giao diện sau:
public interface Subset<T extends Comparable<T>> extends Comparable<Subset<T>>
public class MathSubset<T extends Comparable<T>> extends TreeSet<T> implements Subset<T>
public interface Solution<T extends Comparable<T>>
public interface Solutions<S extends Solution<?>> extends Iterable<S>
public class SolutionsSubset<S extends Solution<?>> extends MathSubset<S> implements Solutions<S>
Tôi cần điều đó tập hợp con mở rộng năng tương đương. Trong SolutionsSubset, lớp MathSubset lưu trữ các đối tượng Solution. Làm cách nào để thay đổi định nghĩa này để làm cho nó hoạt động?
Cảm ơn bạn trước
Cảm ơn sự giúp đỡ của bạn; Cuối cùng tôi quyết định chuyển sang thiết kế "có một". Dù sao, giải pháp của bạn đã giúp tôi hiểu theo cách tốt hơn Generics in Java – user539694