"Consultar objetos por sus interfaces" es una buena práctica, como se menciona en Java efectivo. Así, por ejemplo, prefieroAutocompletar para tipos genéricos en Eclipse
List<String> al = new ArrayList<String>();
sobre
ArrayList<String> al = new ArrayList<String>();
en mi código. Una cosa molesta es que si escribo ArrayList<String> al = new
y luego presiono Ctrl + Espacio en Eclipse obtengo ArrayList<String>()
como propuesta. Pero si escribo List al = new y luego presiono Ctrl + Space obtendré solo propostal para definir la clase interna anónima, pero no propostales como new ArrayList<String>()
, lo que es 99% el caso, o por ejemplo Vector<String>()
nuevo.
Pregunta: ¿Hay alguna manera de obtener las subclases como propuestas para los tipos genéricos?
¿Sería demasiado atrevido sugerir "Usar Guava y' Lists.newArrayList() '? –
por supuesto que es bueno, pero en realidad quiero que todas las subclases sean propostales, no solo para listas. – AvrDragon
@JonSkeet Agregaría una nueva dependencia (me refiero a que desea agregarla de todos modos, pero asuma que no) solo para cambiar 'new ArrayList <>()' a 'Lists.newArrayList()'? –