泛型概念:
class<K,V>,定义了该泛型的形式,在该class里面可以使用K和V做一些事情。如map中实例化时所指定的new HashMap<String,String>,
一般地:K表示键,V表示值,T表示泛型,E表示异常,?表示通配。
另外讲述两个概念:
泛型上限: ?extends T 其中T最大泛型类型,则实例化时使用的泛型必须是最大泛型类型或其子类型
泛型下限: ? super T
其中T符号为类型添加一个下限,表示 “类型 T 以及它的任何超类”,实例化时使用的泛型必须是T或者T的超类(父类)。当您希望指定一个回调对象(例如一个比较器)或存放某个值的数据结构,可以使用下限通配符。
用法说明:
除了上面说的,如我们定义自己的一个泛型
public class<T> genClass{
T a;
public void doSomething(T a){
//todo;
}
}
此处T可表示某种类型,如String,Integer或者自写义的类型,在实例化时你可以指定。 另外T和?用法有各自的范围,详细的区别可以看下面的参考资料。
参考资料