java范型简介

系统 1695 0

java范型简介

一.简单认识java范型

经常听人说“范型”,我一直不是太明白什么叫“范型”,今天就查阅了一些文章,给我的第一感觉就是之所以在java中用范型,就是为了让一些错误在编译阶段就可以暴露出来,而不用在运行阶段才抛出异常。下面给出一个简单例子来说明。

/***/ /**
*没有利用范型的例子
*/

public void example1() ... {
ArrayListarray
= new ArrayList();
array.add(
" thisisastring " );
array.add(
new Integer( 3 )); // 这里可以正确添加

Iteratoriterator
= array.iterator();
while (iterator.hasNext()) ... {
Stringstr
= (String)iterator.next(); // 编译时没错,但在运行时会抛出ClassCastException异常
System.out.println(str);
}

}
运行以上程序,会抛出 java.lang.ClassCastException异常,而该异常是在程序运行过程中才会发现的,如果我们利用了范型,则在编译阶段就会发现异常,从而保证类型转换安全。如下面程序:
public void example2() ... {
ArrayList
< String > array = new ArrayList < String > ();
array.add(
" thisisastring " );
// array.add(newInteger(3)); // 编译时会报异常:Themethodadd(String)inthetypeArrayList<String>isnotapplicableforthearguments(Integer)

Iterator
< String > iterator = array.iterator();
while (iterator.hasNext()) ... {
Stringstr
= iterator.next(); // 这里就不需要进行强制类型转换
System.out.println(str);
}

}

这样,我们在编译阶段就可以捕获可能存在地危险。

通过以上简单例子,我们可以看出,使用java范型的好处有:

  1. 内在的类型转换优于在外部的人工转换
  2. 类型的匹配问题在编译阶段就可以发现,而不用在运行阶段

二.创建自己的范型

任何类,接口,异常,方法都可以使用范型,下面是个简单的例子,使用范型来比较两个对象的大小,两个对象必须都实现了Comparable接口。

public < T extends Comparable > Tmax(Tt1,Tt2) ... {
if (t1.compareTo(t2) <= 0 ) ... {
return t2;
}
else ... {
return t1;
}

}

三.参考资料

1. java 范型攻略篇

java范型简介


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论