In generale cerco di evitare l'uso di tipi non elaborati nella firma dei metodi nelle librerie che sviluppo. Tuttavia, ultimamente sto iniziando a rilassare questa regola (auto-adottata), e sto iniziando a scrivere i tipi grezzi più spesso di prima.
Ad esempio, supponendo un metodo che riceve qualsiasi elenco come parametro (ad esempio, il tipo di membri della lista non è importante), sono stato tentato prima di dichiararlo come:
void myMethod(List<?> list) {...}
Ma ora sto iniziando a scrivere sempre di più:
void myMethod(List list) {...}
Perché è più breve.
La mia domanda concreta è: Nello scenario in cui i parametri di tipo non sono importanti, si utilizzano i tipi non elaborati nei parametri del metodo considerati una buona pratica? In caso contrario, perché no?
L'unico problema che vedo è essere condannato a vedere un avvertimento eterno nell'IDE che utilizzo (anche se probabilmente può essere disattivato da qualche parte), ma vorrei essere sicuro di non mancare qualcos'altro.
Aggiornamento:
Sono pienamente convinto che dovrei usare i generici ovunque dopo aver letto il paragrafo seguente qui :
Use of raw types is discouraged. The Java Language Specification even states that it is possible that future versions of the Java programming language will disallow the use of raw types.