为什么说 Java 的泛型是伪泛型?

1,170 total views, 6 views today

Java 的泛型是伪泛型, 也就是骗骗编译器的。运行期的泛型类型,被擦除了,因此,在运行期,ArrayList<String> 和 ArrayList<int> 是相同的类型。

要证明是伪泛型,非常简单。看下面代码:

伪泛型会导致一些陷阱:

上述代码编译通过,但是运行时 intlist.get(i)*100 会报错,很明显 intlist 中的元素是无法进行乘法运算的,导致报错。

同理,上面的代码在最后一行也会导致运行出错。所以编程的时候,要注意伪泛型的陷阱。

参考:《疯狂 Java》

原创文章,转载请注明出处!http://www.javathings.top/为什么说java的泛型是伪泛型?/

About: wusq


发表评论

邮箱地址不会被公开。 必填项已用*标注