如何实例化一个在Spring框架中使用generics的对象?
我有一个看起来像这样的类:
class Dao<T>{ ... }
我想做这个:
new Dao<Student>();
来自Spring XMLconfiguration。
可以这样做吗? 怎么样?
阅读types删除应该有助于你更好地理解这一点。
在运行时,generics类的types参数被删除 。 意义,正如Cletus所说,Java中的generics基本上是语法糖 – 它们只是一个编译时的特征。
由于Spring在运行时实例化对象,因此实际上可以自由地实例化任何types的Dao
,事实上,没有任何东西可以阻止它创buildDao
,并在某些方法中传入Student
types,在另一个方法中传入Teacher
types。
所以基本上答案是,Spring并不知道Dao
types是用来参数化的,对此无能为力。
你不能这样做,你不能这样做的原因是它实际上没有任何意义。 我的意思是,Javagenerics是语法糖,所以你创build一个bean的types是不相关的。 你可以把它注入任何一个Dao(或Dao)中,在这一点上它将会使用隐式的注入types。