serendipity

2012年5月23日

关于JAVA不支持泛型数组的一点疑惑

请先看这篇博文:
http://www.blogjava.net/deepnighttwo/articles/298426.html

文章里说,如果允许了泛型数组,那么编译器添加的强制类型转换的代码就会有可能是错误的。但是即便只是普通的拥有泛型的对象,在运行时也是会有错误的,附如下代码:
public class Test<T> {
    T t;
    
public static void main(String[] args) {
        
// TODO Auto-generated method stub
        Test<String> list = new Test<String>();
        list.setT(
"123");
        Object o 
= list;
        Test
<StringBuffer> list2 = (Test<StringBuffer>)o;
        System.out.println(list2.getT().append(
"44"));
    }

    
public T getT() {
        
return t;
    }

    
public void setT(T t) {
        
this.t = t;
    }

}

运行时,会有java.lang.ClassCastException.

于是,我有了疑惑,即便不是泛型数组也会有这样类似的错误,那么,不允许使用泛型数组的意义何在?


posted @ 2012-05-23 11:59 梦里贪欢 阅读(84) | 评论 (0)编辑 收藏

仅列出标题  
<2024年11月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

导航

统计

常用链接

留言簿

随笔档案

搜索

最新评论