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

java的泛型是个有趣的东西

时间:2015-06-08 11:51:07      阅读:135      评论:0      收藏:0      [点我收藏+]

标签:

因为泛型的擦除(erasure),任何在运行时需要知道确切类型信息的操作都将无法工作。

public class Erased<T> {
    private final int SIZE = 100;
    public static void f(Object arg){
        if (arg instanceof T){}        // error
        T var = new T();                  // error
        T[] array = new T[SIZE];    //  error
        T[] array = (T[])new Object[SIZE]; // unchecked warning
}

请看上述代码,"arg instanceof T",编译器会认为写这段程序的人是想检查arg是否为某一个类。但是erasure导致这个人的愿望落空,所以就把这段语句置为error。

java的泛型是个有趣的东西

标签:

原文地址:http://my.oschina.net/u/2291753/blog/464044

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