java泛形

前端之家收集整理的这篇文章主要介绍了java泛形前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

<div class="para" style="font-size:14px; word-wrap:break-word; color:rgb(51,51,51); margin-bottom:15px; text-indent:28px; line-height:24px; zoom:1; font-family:arial,宋体,sans-serif">
泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为<a target="_blank" href="http://baike.baidu.com/view/2104244.htm" rel="nofollow" style="color:rgb(19,110,194); text-decoration:none">泛型类、泛型接口、泛型方法。 <a target="_blank" href="http://baike.baidu.com/view/229611.htm" rel="nofollow" style="color:rgb(19,194); text-decoration:none">Java语言引入泛型的好处是安全简单。


<div class="para" style="font-size:14px; word-wrap:break-word; color:rgb(51,sans-serif">
在Java SE 1.5之前,没有泛型的<a target="_blank" href="http://baike.baidu.com/view/780206.htm" rel="nofollow" style="color:rgb(19,194); text-decoration:none">情况的下,通过对类型Object的引用来实现参数的“任意化”,“任意化”带来的缺点是要做显式的<a target="_blank" href="http://baike.baidu.com/view/2886403.htm" rel="nofollow" style="color:rgb(19,194); text-decoration:none">强制类型转换,而这种转换是要求开发者对<a target="_blank" href="http://baike.baidu.com/view/2245196.htm" rel="nofollow" style="color:rgb(19,194); text-decoration:none">实际参数类型可以预知的情况下进行的。对于强制类型转换错误的情况,<a target="_blank" href="http://baike.baidu.com/view/487018.htm" rel="nofollow" style="color:rgb(19,194); text-decoration:none">编译器可能不提示错误,在运行的时候才出现异常,这是一个安全隐患。

<div class="para" style="font-size:14px; word-wrap:break-word; color:rgb(51,sans-serif">
泛型的好处是在编译的时候检查<a target="_blank" href="http://baike.baidu.com/view/1965709.htm" rel="nofollow" style="color:rgb(19,194); text-decoration:none">类型安全,并且所有的<a target="_blank" href="http://baike.baidu.com/view/965170.htm" rel="nofollow" style="color:rgb(19,194); text-decoration:none">强制转换都是自动和<a target="_blank" href="http://baike.baidu.com/view/2852863.htm" rel="nofollow" style="color:rgb(19,194); text-decoration:none">隐式的,以提高代码的重用率。

<div class="para" style="font-size:14px; word-wrap:break-word; color:rgb(51,sans-serif">

实例是不兼容的。
。习惯上称为“有界类型”。
类型。例如Class classType = Class.forName("java.lang.String");
  {
 
 
 
  
 
 
 intOb =  (
 
 
 strOb = (
 {
 strFoo = (
 douFoo = (
 objFoo = (
信息。
的语法:
来声明一个类型持有者名称,然后就可以把T当作一个类型代表来声明成员、参数和返回值类型。
声明了一个泛型类,这个T没有任何限制,实际上相当于Object类型,实际上相当于 class GenericsFoo
”来一并指定泛型类型持有者的真实类型。类如
douFoo=new GenericsFoo(new Double("33"));
类型持有者T的范围,实际上这里的限定类型相当于Object,这和“Object泛型”实质是一样的。限制比如我们要限制T为集合接口类型。只需要这么做:
  {
 listFoo = 
(
改为CollectionGenFoo
 listFoo1 = null;
(new ArrayList());
 {
,“?”代表未知类型,这个类型是实现Collection接口。那么上面实现的方式可以写为:
 
 
 listFoo = null;
 
(new ArrayList());
 
 
 listFoo1 = 
 
 
 
,而没有extends,则默认是允许Object及其下的任何Java类了。也就是任意类。
定义可以有多个泛型参数,中间用逗号隔开,还可以定义泛型接口,泛型方法。这些都与泛型类中泛型的使用规则类似。
方法,与其所在的类是否泛型没有关系。要定义泛型方法,只需将泛型参数列表置于返回值前。如:
Highlighter_52834" class="SyntaxHighlighter java" style="width:100%!important; margin:1em 0px!important; position:relative!important; overflow:auto!important; font-size:1em!important">
 

猜你在找的Java相关文章