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ì.