kotlin协变和逆变

泛型我们一般都知道,然后泛型有个上下边界<? extend T>和<? super T>,我们一般吧<? extend T>称为上边界,<? super T>称为下边界,这个过程其实就称为协变和逆变的过程。

我们再详细点解释下:

 List<Object> list = new ArrayList<String>();

上面这个例子,我们写出来肯定会报错,因为这个相当于父类继承子类了,所以是错误的写法,我们应该用Java提供的通配符适配,如下:

List<? extends Object> list = new ArrayList<String>();//协变 A>B 生产者

这样写就没问题了,因为String确实是Object的子类。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容