我们再详细点解释下:
List<Object> list = new ArrayList<String>();
上面这个例子,我们写出来肯定会报错,因为这个相当于父类继承子类了,所以是错误的写法,我们应该用Java提供的通配符适配,如下:
List<? extends Object> list = new ArrayList<String>();//协变 A>B 生产者
这样写就没问题了,因为String确实是Object的子类。
微信扫一扫
我们再详细点解释下:
List<Object> list = new ArrayList<String>();
上面这个例子,我们写出来肯定会报错,因为这个相当于父类继承子类了,所以是错误的写法,我们应该用Java提供的通配符适配,如下:
List<? extends Object> list = new ArrayList<String>();//协变 A>B 生产者
这样写就没问题了,因为String确实是Object的子类。
相关推荐