数据类型问题。

纯学术研究,先看例子。

public static void main(String[] args) {
        int[] arr1 = new int[1];
        int[][] arr2 = new int[1][1];
        String[] arr3 = new String[1];
        Object[] arr4 = new Object[1];

        Class<? extends int[]> class1 = arr1.getClass();
        Class<? extends int[][]> class2 = arr2.getClass();
        Class<? extends String[]> class3 = arr3.getClass();
        Class<? extends Object[]> class4 = arr4.getClass();

        System.out.println(class1 == class2);// err
        System.out.println(class1 == class3);// err
        System.out.println(class1 == class4);// err

        System.out.println(class2 == class3);// err
        System.out.println(class2 == class4);

        System.out.println(class3 == class4);
    }

这段代码在jdk1.5之后,注释err的行会编译报错。

Incompatible operand types Class<capture#5-of ? extends int[]> and Class<capture#6-of ? extends
int[][]>

Incompatible operand types Class<capture#7-of ? extends int[]> and Class<capture#8-of ? extends
String[]>

暂时理解的不是很好,先记在这里。

原文地址:https://www.cnblogs.com/xirtam/p/3468749.html