java泛型数组在类型转换时和正常的对Object类型进行强转有什么不同?

public class Test {
    public static void main(String[] args) {
        /*
         * 第一段代码
         */
        A<Integer> a = new A<>();
        a.test();

        /*
         * 第二段代码
         */
        Integer[] tt = (Integer[]) new Object[5];
        System.out.println("&&&&&&&&&&");
    }
}

class A<T> {
    public void test() {
        T[] tt = (T[]) new Object[5];
        System.out.println("*********");
    }
}

为什么第一段代码没报错,第二段代码报类型转换错误?

美食侵略者
浏览 1933回答 1
1回答

ruibin

第一个是同一个父类,第二个不是。如果没有同一个父类,不能强转,会报错。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java