首页 > 编程语言 > 详细

Java 泛型

时间:2014-04-09 13:44:18      阅读:477      评论:0      收藏:0      [点我收藏+]

什么是泛型?

         声明中具有一个或者多个类型参数的类或者接口,就是泛型类或者接口。

          如List<E> 读做E的列表。E代表了元素类型

 

请不要在新代码中使用原生态泛型

         所谓原生态泛型,指的是不带任何实际类型参数的泛型名称。如List<E>相对应的原生态类型为List。

          原生态类型,不具有泛型在安全性和表达性方面的所有优势。之所以存在,是为了兼容以前版本。

 

List<Object> VS List

            List逃避了泛型检查,但是后者明确告诉编译器,他能够持有任何对象。

             如果一个方法中,有一个参数,类型为List。你可以讲一个List<String>传递给这个参数,但是如果这个参数类型为List<Object>,你则不能将

             List<String>传递给这个参数。

             泛型有子类型化的规则,List<String>是原生态List的一个子类型,而不是参数化类型List<Object>的子类型。

              总之,如果使用像List这样的原生态类型,就会失掉类型安全性,如果使用像List<Object>这样的参数化类型,则不会

 

List<?> VS List

           List<?>为无限制通配类型

           原生态的List由于可以放进任何元素,所以很容易破坏该集合的类型约束条件。但是不能将任何元素放到无限制通配类型中

    

           总之List<Object>是个参数假类型,表示可以包含任何对象类型的一个集合。List<?>则是一个通配符类型,表示只能包含某种

           未知对象的类型集合。List则是个原生态类型,他脱离了泛型类型。前两种是安全的,最后一种不安全。

 

 

 

Java 泛型,布布扣,bubuko.com

Java 泛型

原文:http://www.cnblogs.com/chenfei0801/p/3653135.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!