码迷,mamicode.com
首页 > 编程语言 > 详细

十、java泛型(二)

时间:2015-09-15 23:21:53      阅读:239      评论:0      收藏:0      [点我收藏+]

标签:

一、泛型中的擦出现象

1.什么是擦出现象?见下例:

 1 import java.util.ArrayList;
 2 
 3 
 4 public class EraseTypeEquivalence {
 5     public static void main(String[]args) {
 6         Class c1 = new ArrayList<String>().getClass();
 7         Class c2 = new ArrayList<Integer>().getClass();
 8         
 9         System.out.println(c1 == c2);
10     }
11 }

结果如下:

技术分享

居然是true, 首先联系一点,每种对象Class,都只会在java虚拟机中创建其类型的一个Class类,用于创建其他对象,
而这里虽然泛型用的参数类型不同,但是它本质上面还是ArrayList的Class对象,所以两个是一样的。 所以是true
上面这种情况,就是所谓的泛型擦除现象。
泛型内部,无法获得任何有关泛型参数的信息。也就是虽然对象传递的时候有差别,但是进入到泛型容器中后对容器来说他们的类型信息就没有了, 都被认为是“无类型之分”了。 

十、java泛型(二)

标签:

原文地址:http://www.cnblogs.com/kaiguoguo/p/4811699.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!