Java教程

05.泛型 extends和super-Java第一阶

本文主要是介绍05.泛型 extends和super-Java第一阶,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

java的一个设计理念是 ,与泛型相关的异常最好是在编译期间就被发现 , 因此设 计了extends与super这两种方式 。具体来说 ,List<? extends T>表示该集合中存在的都是类型T的子类 ,包括T自 己 。

而List<? super T>表示该集合中存的都是类型T的父类 ,包括T自己 。

List<? extends T>如果去添加元素的时候 , 因为list中存放的其实是T的一种子 类 ,如果我们去添加元素 ,其实不知道到底应该添加T的哪个子类 ,这个时候桥 接方法在进行强转的时候会出错 。但是如果是从集合中将元素取出来 ,我们可以 知道取出来的元素肯定是T类型 。所以? extends T这种方式可以取元素而不能添 加 ,这个叫get原则 。List<? super T>因为存的都是类型T的父类 ,所以如果去添加T类或者T类子类的 元素 ,肯定是可以的 。但是如果将元素取出来 ,则不知道到底是什么类型 ,所 以? super T可以添加元素但是没法取出来 ,这个叫put原则 。常见的一些泛型标识就是T(类型)、E(元素)、K(key)、V(value)、? (通配符 ,不确定的)这几个 ,其实填任何字母都行 。

这篇关于05.泛型 extends和super-Java第一阶的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!