2009-02-18 92 views

回答

55

閱讀約type erasure應該會幫助你更好地理解這一點。

在運行時,泛型類的類型參數是已被擦除。意義,正如cletus所說,Java中的泛型基本上是句法糖 - 它們只是編譯時的特徵。

因爲春天是在運行時實例化對象,它實際上是隨意實例化任何類型的Dao - 實際上,沒有什麼與創建Dao並傳遞Student類型的一些方法和Teacher類型阻止它另一個。

所以基本上的答案是,Spring不知道Dao類型是用來參數化的,不能對它做任何事情。

8

你不能這樣做,你無法做到的原因是它實際上沒有任何意義。我的意思是,Java泛型是語法糖,所以你創建一個bean的類型是不相關的。你可以將它注入任何採用Dao(或Dao)的任何東西,在這一點上它將使用隱式投射它注入的任何類型。