JAVA泛型通配符T,E,K,V区别,T以及Class<T>,Class<?>的区别以及接口里default方法

使用大写字母A,B,C,D......X,Y,Z定义的,就都是泛型,把T换成A也一样,这里T只是名字上的意义而已

  • 表示不确定的java类型
  • T (type) 表示具体的一个java类型
  • K V (key value) 分别代表java键值中的Key Value
  • E (element) 代表Element


ArrayList<? extends E> al=new ArrayList<? extends E>();
泛型的限定:
? extends E:接收E类型或者E的子类型。上界通配符
? super E:接收E类型或者E的父类型。下界通配符
 
 
接口内不可以实现具体的函数,但是如果使用default修饰,则可以。

参考:

1、https://www.jianshu.com/p/95f349258afb

2、https://www.zhihu.com/question/20400700

原文地址:https://www.cnblogs.com/shengulong/p/10057036.html