Nếu tôi có:Có thể tạo các Bộ sưu tập Java an toàn kiểu mà các thành viên chỉ thực hiện một số giao diện không?
interface A{ void a(); }
interface B{ void b(); }
tôi có thể HAVA một phương pháp chung chung như thế này:
class C {
<T extends A & B> void c(T t) {
t.a();
t.b();
}
}
Nhưng tôi không thể HAVA một bộ sưu tập chung như thế này:
class D{
List<? extends A & B> l;
}
tôi biết rằng tôi có thể tạo ra một giao diện trống E mở rộng cả A và B, và có một List chứa E's ... nhưng tôi muốn để lại các lớp được đánh dấu chỉ với A và B, và không cần phải có một E. T thậm chí còn có nhiều vấn đề hơn khi có nhiều A và B hơn có thể được kết hợp theo 2 cách.
Tôi thà có thể xác định một loại khi đang di chuyển, như là một liên kết các giao diện và có các bộ sưu tập nhận ra các đối tượng triển khai tất cả các giao diện như các thể hiện của loại đó.
Có cách nào để thực hiện điều này trong Java không? Tôi mở cửa cho bất kỳ loại công việc nào xung quanh hoặc hack vào thời điểm này để tránh tạo một giao diện mới và gắn thẻ các lớp học của tôi với nó, chỉ để họ có thể sống cùng nhau trong một bộ sưu tập. Hoặc, nếu ai đó có thể làm rõ cho tôi lý do tại sao điều này là không thể, điều đó sẽ được đánh giá cao như nhau.
Ý bạn là và * giao lộ * của giao diện, phải không? – Saintali
Tôi khá chắc chắn tôi có nghĩa là một liên minh của giao diện. Có lẽ bạn đang nghĩ về cách có một bộ khác nhau (hy vọng không phân tách) các lớp thực hiện mỗi giao diện. Sau đó, tập hợp các lớp thực hiện sự kết hợp của các giao diện là giao điểm của các bộ mô tả ở trên. –