Cioè??? Non ti sei espresso affatto bene. Sai bene come funzionano i generics e cosa sono i wildcard??Originariamente inviato da fabbio86
Ok, e qui sta il senso della mia domanda: esiste un modo di scrivere codice generale per qualunque classe concreta?
Tu hai scritto:Originariamente inviato da fabbio86
Non ho ben capito cosa intendi... Quale dichiarazione?
public class DouLinList<T extends Comparable<T>> .....blabla
Indicare che deve essere Comparable esattamente di tipo T è limitante. Posso farti un esempio:
In questo caso se tu facessi: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 { ..... }
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
Dovresti dire di che tipo è la tua lista.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?
Cioè hai fatto:
DouLinList<String> mialista = new DouLinList<String> ();
oppure
DouLinList<Integer> mialista = new DouLinList<Integer> ();
o altro?
Il nocciolo è lì.

Rispondi quotando