Tôi nhận được báo lỗi dưới đây:Tại sao phương thức này gọi không thành công? (Generics & ký tự đại diện)
'call(ContainsMonitor)' cannot invoke 'call(? extends webscout.Monitor)' in 'WebScoutCallable'
Monitor.java
WebScoutCallable<? extends Monitor> handler;
public setCallable(WebScoutCallable<? extends Monitor> callable) {
this.handler = callable;
}
WebScoutCallable.java
public interface WebScoutCallable<T extends Monitor> {
public void call(T caller);
}
ContainsMonitor.java
public class ContainsMonitor extends Monitor {
public void handleDocument() {
handler.call(this);
}
}
Tôi sẽ tự do thừa nhận rằng tôi mới sử dụng Generics và vẫn còn khá mới đối với Java. Tôi thấy thông báo lỗi gây nhầm lẫn vì có vẻ như nó sẽ hoạt động (khai báo phương thức mong đợi một Màn hình hoặc phân lớp, tôi đang chuyển vào một lớp con). Bất kỳ trợ giúp (+ giải thích) sẽ được đánh giá rất nhiều!
Cảm ơn!
Cảm ơn bạn đã trả lời chi tiết. Tôi nghĩ rằng có thể có một giải pháp ít tiết hơn nhưng điều này có ý nghĩa! – RNGuy