sto ottenendo l'errore sotto:Perché questa chiamata al metodo fallisce? (Generics e jolly)
'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);
}
}
Ammetto liberamente che sono nuovo per i generici e ancora piuttosto nuovo per Java. Trovo il messaggio di errore confuso visto che dovrebbe funzionare (la dichiarazione del metodo prevede un monitor o una sottoclasse, sto passando in una sottoclasse). Qualsiasi aiuto (+ spiegazione) sarebbe molto apprezzato!
Grazie!
Grazie per la risposta dettagliata. Ho pensato che ci potrebbe essere una soluzione meno verbosa, ma questo ha senso! – RNGuy