美文网首页
为什么Java的泛型要做类型擦除

为什么Java的泛型要做类型擦除

作者: RocWay | 来源:发表于2017-05-04 10:41 被阅读0次

Java的泛型始自2004年10月发布的JDK5。
JDK5之前可以这么写:

List a = new ArrayList();
a.add(1);
a.add("Hello");
a.add(v);

总之可以往里添加各种类型的数据。
JDK5之后虽然有了泛型,可以在声明时制定类型参数,但是为了保证前向兼容,仍然允许上述代码。

只是从JDK5开始,在声明时可以加入类型信息,如下:

List<String> a = new ArrayList<>();
a.add(1);        // 编译出错
a.add("Hello);  // ok
a.add(v);       // 编译出错 

由此也可见Java的泛型是在编译时检查类型的。

相关文章

网友评论

      本文标题:为什么Java的泛型要做类型擦除

      本文链接:https://www.haomeiwen.com/subject/ndertxtx.html