Java中为何不能使用泛型数组?

刚刚接触java,在学习泛型时遇到了一个问题。我编写了一段代码,存在一个疑问,第3行是否属于使用泛型数组。
我了解到翻译泛型时存在类型擦除,<Integer, String>会被抹成Object,而且我也明确看到了资料中写出不支持泛型数组。
希望有好心人可以给我解释一下我这段代码是否属于泛型数组,或者说是,能够通俗的解释一下不能使用使用泛型的理由。万分感谢!

public class GenericParadigmTest {
    public static void main(String[] args) {
        Demo<String,Integer>[] demos=new Demo[3];
        demos[0]=new Demo<>();
        demos[0].setData1("smith");
        demos[0].setData2(25);
        demos[1]=new Demo<>();
        demos[1].setData1("howard");
        demos[1].setData2(46);

    }
}class Demo<T1,T2>{
    private T1 data1;    private T2 data2;    public T1 getData1(){        return data1;
    }    public void setData1(T1 data1){        this.data1=data1;
    }    public T2 getData2(){        return data2;
    }    public void setData2(T2 data2){        this.data2=data2;
    }
}


慕姐4208626
浏览 1099回答 2
2回答

浮云间

Demo<String,Integer>[]&nbsp;demos=new&nbsp;Demo<String,Integer>[3];//&nbsp;not&nbsp;support&nbsp;in&nbsp;java这样才是泛型数组为什么不支持你自己也提到了,因为java的泛型是伪泛型,是通过擦除实现的,Demo<String>[]和Demo<Integer>[]都会被擦除成Demo<Object>[],也就有安全问题了

慕侠2389804

我也是个java小白,算法第四版里。看到的
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java