Originariamente inviato da fabbio86
Ok, e qui sta il senso della mia domanda: esiste un modo di scrivere codice generale per qualunque classe concreta?
Cioè??? Non ti sei espresso affatto bene. Sai bene come funzionano i generics e cosa sono i wildcard??
Originariamente inviato da fabbio86
Non ho ben capito cosa intendi... Quale dichiarazione?
Tu hai scritto:
public class DouLinList<T extends Comparable<T>> .....blabla
Indicare che deve essere Comparable esattamente di tipo T è limitante. Posso farti un esempio:
codice:
class Veicolo implements Comparable<Veicolo>
{
private String targa;
// .....costruttori ecc.....
public int compareTo (Veicolo v)
{
return targa.compareTo (v.targa);
}
}
class Automobile extends Veicolo { ..... }
class Motocicletta extends Veicolo { ..... }
In questo caso se tu facessi:
DouLinList<Automobile> listaAuto = new DouLinList<Automobile> ();
NON compilerebbe nonostante due oggetti Automobile siano realmente davvero comparabili!!
Ecco perché la forma più "ampia" è:
public class DouLinList<T extends Comparable<? super T>> .....blabla
Originariamente inviato da fabbio86
Ma tornando al problema originale cosa devo scrivere al posto di:
p.add((T)(arr[i]));
per eliminare il warning e ottenere l'effeto voluto?
Dovresti dire di che tipo è la tua lista.
Cioè hai fatto:
DouLinList<String> mialista = new DouLinList<String> ();
oppure
DouLinList<Integer> mialista = new DouLinList<Integer> ();
o altro?
Il nocciolo è lì.