"Fare riferimento agli oggetti tramite le loro interfacce" è una buona pratica, come menzionato in Java efficace. Così, per esempio preferiscoCompletamento automatico per i tipi generici in Eclipse
List<String> al = new ArrayList<String>();
oltre
ArrayList<String> al = new ArrayList<String>();
nel mio codice. Una cosa fastidiosa è che se digito ArrayList<String> al = new
e poi premo Ctrl + Spazio in Eclipse ottengo ArrayList<String>()
come propostale. Ma se scrivo List al = new e poi premo Ctrl + Space, otterrò solo il propostal per definire la classe interna anonima, ma non i propostals come new ArrayList<String>()
, il 99% del caso, o per esempio il nuovo Vector<String>()
.
Domanda: C'è un modo per ottenere sottoclassi come propostali per tipi generici?
Sarebbe troppo sfacciato suggerire "Usa Guava e' Lists.newArrayList() '? –
ovviamente è buono, ma in realtà voglio ottenere tutte le sottoclassi come propostale, non solo per gli elenchi. – AvrDragon
@JonSkeet Dovresti aggiungere una nuova dipendenza (voglio dire che vuoi aggiungere comunque, ma non assumere) solo per cambiare 'nuovo ArrayList <>()' in 'Lists.newArrayList()'? –