Liste Parametriche

di il
2 risposte

Liste Parametriche

Salve! Spero di non aver sbagliato il titolo Bene stavo facendo un programma per l'università e mi è giunto questo problema
Io ho 2 interfacce Excursion e Uscita. Uscita estende Excursion. Nel mio programma Creo una lista List< ? extends Excursion >ma quando provo a infilargli dentro un istanza di una classe che implementa Uscita mi dà errore eppure Uscita estende Excursion..

Provo ad allegare anche il codice:

public interface Excursion { /* metodi vari */}
public interface Uscita extends Excursion { /* metodi vari */}


public List<? extends Excursion> list = new ArrayList<>();
Uscita u = new UscitaImpl();  // ovviamente UscitaImpl implementa l'interfaccia

list.add(u);     // ERRORE 

The method add(capture#3-of ? extends Excursion) in the type List<capture#3-of ? extends Excursion> is not applicable for the arguments (Uscita)

Spero di essere stato chiaro.... gradirei molto più che la sola soluzione capire anche il motivo per cui non funziona
Grazie mille in anticipo

2 Risposte

  • Re: Liste Parametriche

    Valgio95 ha scritto:


    gradirei molto più che la sola soluzione capire anche il motivo per cui non funziona
    Allora devi comprendere i concetti dietro ai wildcard con extends/super nelle parametrizzazioni. Prova a leggere questa discussione:



    è un po' lunga ma chi aveva chiesto lumi a riguardo alla fine i wildcard li ha capiti (credo ...).
    Per altri tuoi dubbi, continua pure qui in questa tua discussione.
  • Re: Liste Parametriche

    Grazie mille! Adesso me la leggo
Devi accedere o registrarti per scrivere nel forum
2 risposte