java - requestmapping - ¿Cómo instalo un Objeto que usa genéricos con Spring framework?
spring mvc español (2)
Leer acerca del borrado de tipos debería ayudarlo a entenderlo un poco mejor.
En tiempo de ejecución, los parámetros de tipo para una clase genérica se borran . Es decir, como dijo Cletus, los genéricos en Java son básicamente azúcar sintáctico: solo son una característica de tiempo de compilación.
Dado que Spring crea objetos instanciados en tiempo de ejecución, en realidad es libre de crear un Dao
de cualquier tipo, y en realidad, no hay nada que le impida crear un Dao
y pasar tipos de Student
en algunos métodos y tipos de Teacher
en otro.
Así que, básicamente, la respuesta es que Spring no tiene idea de que el tipo Dao
está destinado a ser parametrizado y no puede hacer nada con él.
Tengo una clase que se ve así:
class Dao<T>{
...
}
Quiero hacer esto:
new Dao<Student>();
de la configuración Spring XML.
¿Se puede hacer eso? ¿Cómo?
No puedes hacerlo y la razón por la que no puedes hacerlo es porque realmente no significa nada. Con eso me refiero a que los genéricos de Java son azúcar sintáctico, por lo que el tipo con el que se crea un frijol es irrelevante. Puedes inyectarlo en cualquier cosa que tome un Dao (o Dao) muy bien y en ese punto usará la conversión implícita del tipo en el que se haya inyectado.