Foro sobre Java SE > Planteamiento con Generics Java
Creo que deberías empezar por leer atentamente este tutorial.
http://docs.oracle.com/javase/tutorial/java/generics/
Contiene numerosos ejemplos que resuelven lo que planteas.
Gracias, he estado mirando bastante de la documentación que me enviaste.
Ahora tengo otro problema, cuando en un método declaro que devuelve un valor List<T>, eclipse dice que no reconoce T, me da la opción de añadir <T> List <T> como valor devuelto, pero entiendo que esa primera <T> seria porque voy añadir parametros de tipo T al método, en mi caso no es así, no necesito parámetros. ¿Cómo solucionais vosotros este error?
Muchas gracias.
Publica el método completo donde te lanza ese error.
Es bastante difícil adivinar lo que sucede con un código que no se ve.
Por ejemplo:
public <T> List<T> getLista() {
return new ArrayList<>();
}
El método no usa parámetros, y devuelve una List genérica de la clase T
Buenas tardes,
Quiero hacer un código que haga lo siguiente: recupere listados de una pantalla, y mapee los campos a mis objetos Java.
El problema esta, en que el metodo recuperarListados(...) no siempre devolverá el mismo tipo de listado, ni estos listados tendran siempre los mismos campos, os pongo un ejemplo de tipo de listado con sus campos:
Listado A
Nombre Apellidos Titulacion Edad
Listado B
DNI Direccion Empresa
Listado C
Solicitud Referencia Porcentaje Documentos Expedido
Bueno, una vez visto los ejemplos, lo que me gustaría hacer es "no repetir" el código que recupera estos listados, sino que con el mismo método me devuelva un listado, que luego usaré según el tipo que sea, es decir:
public ListadoGenerico<T> recuperarListados (....);
El metodo recuperarListados, además de las operaciones oportunas para recuperar los campos del listado que se trate, tendrá una llamada a un metodo mapear, que sera distinto para cada listado : mapearListadoA, mapearListadoB, mapearListadoC.
Tengo dudas en cómo usar los génericos para devolver el dato de retorno en recuperarListados,si hacer algo asi List<T> o crear una clase generica MiListado que dentro tenga un atributo List<T>.
Estuve pensando en Herencia e interfaces pero no lo veo adecuado, que piensan vosotros? Cual es la forma más agil de hacerlo?
Finalmente me gustaria hacer algo asi:
List <ListadoA> miLista1 = recuperarListados(....);
List <ListadoB> miLista2 = recuperarListados(....);
Podrían darme ideas para plantear el problema?
Apenas he usado génericos por lo que me pierdo un poco a la hora de hacer el mejor planteamiento.
Muchas gracias por adelantado.