我们在查看JDK的帮助文档时,可能经常看到这样的东西:
这是什么呢?
可能大家已经猜到了,这个就是通配符。
通配符的作用:
通配符可以引用其他各种参数化的类型,通配符定义的变量主要用作引用。
- 限定通配符的上边界:
//正确的使用, Number是8种基本数据类型的父类
List<? extends Number> list = new ArrayList<Integer>();
//错误的使用, String不是基本数据类型
List<? extends Number> list = new ArrayList<String>();
- 限定通配符的下边界:
//正确的使用, Number是Integer的父类
List<? super Integer> list = new ArrayList<Number>();
//错误的使用 Byte不是Integer的父类
List<? super Integer> list = new ArrayList<Byte>();
- 注意:限定通配符总是包括自己.