java泛型之泛型通配符具体是什么作用?

Python013

java泛型之泛型通配符具体是什么作用?,第1张

Java中不允许嵌套泛型的内层通配符?匹配一个具体的类型,因为这可能破坏类型安全。

这样做是可以的:

List<?>list = new ArrayList<Integer>()

这样做是不可以的:

List<List<?>>list = new ArrayList<List<Integer>>()

java泛型中E和T是可以随便起名的,只是大家习惯用E和T,一传十十传百大家一看到<E>和<T>就知道是泛型了,所以这只是习惯使然。比如:

运行结果:

E和T你乱起名字也行:

是不影响运行的。

至于?,?是用于定义泛型的通配符和边界,一般比较常见的是<? extends T>,可以参考一下这篇资料