美文网首页
为什么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