初识JAVA中的泛型概念

需要说明为什么会有泛型,就需要从使用泛型的好处说。

好处

1.类型安全。

   泛型类或方法允许用户指定可以和这些类或方法一起工作的对象类型。如果试图使用一个不相容的对象,编译器就会检测出这个错误。  

//first
Comparable c = new Date(); System.out.println(c.compareTo("red"));
//second
Comparable<Data> c = new Date(); System.out.println(c.compareTo("red");

比较第一段和第二段代码

第一段语句会编译,但是它会产生运行时错误,因为字符串不能与Date对象进行比较;

第二段中c声明为一个引用变量,它的类型是Comparable<Date>,然后调用compareTo方法来比较Date对象和一个字符串。这样的代码会产生编译错误,因为传递给compareTo方法的参数必须是Date类型的。

 

2.消除强制类型转换。 这使得代码更加可读,并且减少了出错机会。

代码不使用泛型:

List li = new ArrayList();
li.put(new Integer(3));
Integer i = (Integer) li.get(0);

代码使用泛型:

List<Integer> li = new ArrayList<Integer>();
li.put(new Integer(3));
Integer i = li.get(0);

 

PS:

关于使用泛型的几点小注意:

1. 泛型的类型参数只能是类类型(包括自定义类),不能是简单类型。

2. 同一种泛型可以对应多个版本(因为参数类型是不确定的),不同版本的泛型类实例是不兼容的。

3. 泛型的类型参数可以有多个。

转载于:https://www.cnblogs.com/buptys/p/5254530.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值