首页 > 代码库 > java泛型
java泛型
泛型:JDK1.5版本以后出现新特性,用于解决安全问题,是一个安全机制.
升级3部 高效 简化书写 安全
好处:
1将运行时期出现问题ClassCastException类型转换异常,转移到了编译时期.方便程序员解决问题,让运行事情问题减少,安全.
2.避免了强制转换麻烦.
在使用java提供的对象时,什么时候写泛型呢?
通常在集合框架中很常见,只要见到<>就要定义泛型.
其实<>就是用来接收类型的.
什么时候定义泛型类?
当类中要操作的引用数据类型不确定的时候.
为了让不同方法可以操作不同类型,而且类型还部确定
那么可以将泛型在方法上
特殊之处:
静态方法不可以访问类上定义的泛型.
如果静态方法操作的应用数据类型不确定.可以将泛型定义在方法上.
泛型的位置也有将就
Public static <QQ> getfanxing(){} 位置错了也会报错.
可以既有泛型类,也有泛型方法
泛型定义在方法上事例
package pack;import java.util.ArrayList;import java.util.Collection;public class Demo{ public static void main(String[] args) { } //泛型定义在方法上,返回值和参数都是泛型 public static <T> T show(ArrayList<T> al){ return null; } //泛型定义在方法上, public static <T> void show(Collection<T> al){ }}
泛型定义在类上事例
package pack;import java.util.ArrayList;import java.util.Collection;public class Demo<T>{ T a; }class Gen<T>{ T a; public Gen(T obj){ } public void Get(T t){ } public T getObj(){ return null; }}
泛型的限定:
? 通配符,也可理解为占位符
泛型的限定:
? extends E:可以接收E类型或者E的子类型.上限. 既能接收E 也能接收E的子类型
?super E:可以接收E类型或者E的父类型.下限.
? 通配符,也可理解为占位符泛型的限定:
public static void printToll(ArrayList<?> al) //泛型通配符.?{ Iterator<?> it = al.iterator(); while(it.hasNext()) { System.out.println(it.next()); }}
java泛型
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。