關於在方法裡面使用泛型public static <T> T
阿新 • • 發佈:2018-11-08
對泛型的理解一直處於模糊的狀態,所以今天就專門看了看泛型,看到了如下的一段程式碼,網上沒有找到相應的解釋。
然後嘗試著自己理解了一下,第一次寫部落格,手比較生。
現在就開始來寫我的理解。
看到這個方法的第一眼,為啥返回值的型別是<T> T,而不是 T 呢,型別不就是泛型嗎?在網上找到個和我這個問題有點兒相似的,
http://wenda.jikexueyuan.com/question/3505/ 大家可以點選去看一下,提問者的問題是為什麼返回值已經是void,還要在它的前面加上<T>,不加的話會報錯,然後我
就再次看了一下這個方法,它的入參是Class<T> requiredType,也就是說這個方法需要傳入一個泛型類的引數,所以前面的<T> T中的<T>代表的是 返回值T的型別,也就是入參為class的時候,返回值型別的呃前面需要加一個<T> 來限定 後面泛型T的型別,告訴後面返回值T的型別是什麼,返回值為void,也不能不寫<T>,因為需要和入參的型別保持一致。
不知道這樣解釋大家是否能懂,以後多鍛鍊自己寫部落格,和大家分享自己的學習心得。
public static <T> T getBean(Class<T> requiredType) { assertContextInjected(); return applicationContext.getBean(requiredType); }