JDK1.5泛型

5 篇文章 0 订阅
泛型是jdk1.5后出现的,它的出现起到什么作用?我们先把这个问题放在这里,后续就知道了
在jdk1.5之前  在集合中添加数据是这样的
public class GenericTest {
public static void main(String[] args) {
List list = new ArrayList();
list.add(123);
list.add("abc");
Iterator al = list.iterator();

while(al.hasNext()){
String content = (String) al.next();
System.out.println("content="+content);
}
}
}


这代码存放二方面问题
第一:会警告 说这不安全
第二:会报错,因为向集合中添加了字符串和数字,但是我们在强转的时候就直接转成了字符串,
报错信息:java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String
这错误就是说类型转换异常,Integer不能转成String


而且这错误是发生在运行时期,也就是说我们做的项目交给客户使用,发生这种事,肯定对你公司的技术实力印象非常不好
所以我们要让这错误发生在编译时期,就可以避免这些问题,


那么这个时候就使用到了泛型了,
我们对上面的代码使用泛型进行改良下,
public class GenericTest {
public static void main(String[] args) {
List<String> list = new ArrayList<String>();
list.add("abc");
list.add("ab");
list.add("ac");
for(String str:list){
System.out.println(str);
}
}
}
这说明集合中只能存放String类型的数据,其他类型的数据加进来,编译器就会报错,
还有在取集合中的数据就不用强转了,


总结:
泛型出现的好处:
将运行时期出现的问题转移到了编译时期,这样程序员就可以对程序进行控制了


泛型的格式:

通过<>来指定集合中存放元素的类型

那么我们什么时候用泛型呢,其实查看api发现,比如;

Class TreeSet<E>,只要类中后面带了泛型,就要用到E代表的是Element(元素的意思)











评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值