spring - Java源代码中泛型的提问?
本文介绍了spring - Java源代码中泛型的提问?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
**在查看JDK源代码的时候,常会发现如下几种类型:?、T、Object、K、V、E,众所周知,?代表的是不确定的Java类型,T代表实际使用之前就已经确定的Java类型,Ojbect是所有类的基类,在强制转换的时候,可以被频繁使用,K和V表示的是key,value,E代表的是Element,Element是元素的意思,表示它是作为一个集合的元素。但是源码中有的时候用的是E,有的时候用的是V,它们在表示单一的类型的时候有什么区别呢?
比如:**
1.Callable接口,为什么用的是V
public interface Callable<V> {
V call() throws Exception;
}
2.List接口中为什么使用E
public interface List<E> {
void add(E x);
Iterator<E> iterator();
}
得出的结论:V、E、T代表的是一种类型,并没有实质的区分。就好像在数学中,变量x y z都表示变量名,在同一环境下,区分开来是三个不同的变量。
解决方案
用什么都是一样的,没有区别,T、K、V、E他们仅仅是一个名而已,取不同的名只是为了告诉我们这个类型数据所代表的含义。
这篇关于spring - Java源代码中泛型的提问?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文