对泛型的认识
程序员文章站
2024-03-14 19:37:28
...
泛型:
* 1.用在类上
* 2.用在接口上
* 3.用在方法上(方法的返回值)
* public <T> list<T> 中间的<T>只是一个声明,并没有太多的用处,但是如果方法上没有这个标识,则表示不是泛型方法
* ?是一个占位符, <? extends K > or <? extend V>通过这样的形式去使用
* <T extends K> or<T extend V>
* 以上这两点中的extends其实起到一个限定边界的作用
* 下面一个简单的实例:
* ? extends Animal 表示 ?的最大的边界为animal,而他是不能去超越annimal去访问
* animal的父类的.
* 为什么会出现泛型:
* 1.避免数据类型强转带来的exception
* 2.确定了参数列表或者接口,类上的参数类型
* 3.解决了代码的冗余程度
即:如果没有使用泛型导致的结果:1.参数类型任意化,定义为Object类型,2.然后数据类型强制转化,而这种转换编译期是不会错误的,因此存在很大的安全隐患,只有在运行期才会出现错误
3.泛型可以理解为一个方法的参数列表(只是进行类比,但是实质上并不是,根据每个人的理解了)
4.关于类型通配符:
? extends A 表示是当前A的子类,并不能找到其A的父类
? super A 表示的当前A的父类,并不能找到其A的子类,
? 表示匹配任意的.List<?>
关于泛型的总结和平时的使用大概就是以上几点了,