对泛型的理解一直处于模糊的状态,所以今天就专门看了看泛型,看到了如下的一段代码,网上没有找到相应的解释。
然后尝试着自己理解了一下,第一次写博客,手比较生。
现在就开始来写我的理解。
看到这个方法的第一眼,为啥返回值的类型是<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); }