Perché non posso restituire un'implementazione di un'interfaccia per un metodo che richiede l'interfaccia? [chiuso]

-3

Sto implementando un'interfaccia I su una classe A. I di classe A.

Ho un Iterator T che dovrebbe restituire un oggetto che implementa I ogni volta che chiamo next.

Il mio iteratore funziona come segue (ovviamente omettendo altre cose):

public class T<I> implements Iterator<I> {        
    @Override
    public I next() {
        return new A();
    }    
}

Tuttavia, ottengo questo errore: Richiesto I, trovato A (per la nuova riga A () di ritorno) ....

Non so cosa sta succedendo. Qualcuno può aiutarmi?

    
posta JOX 12.10.2015 - 07:03
fonte

1 risposta

0

La tua definizione di classe introduce I come variabile di tipo, il che significa che non si riferisce all'interfaccia che ti aspetti. Cambia la definizione della tua classe in

public class T implements Iterator <I>

e tutto dovrebbe funzionare bene.

    
risposta data 12.10.2015 - 11:51
fonte

Leggi altre domande sui tag