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