Java 二维数组[]和数组[]之间的赋值是否合法?
让我们假设Java 二维数组[]和数组[]之间的赋值是否合法?,java,Java,让我们假设 Object[][]a; //a matrix of Objects Exception[] r; //an array of Exceptions 注意,异常是Object的子类 现在,什么时候 a = r; 是否在Java中合法?否,您需要将其分配给2d数组中的特定索引,并确保数组已初始化为从以下内容开始: Object[][] a = new Object[5][5]; Exception[] r = new Exception[5]; a[0] = r; 因为所有东西都
Object[][]a; //a matrix of Objects
Exception[] r; //an array of Exceptions
注意,异常是Object的子类
现在,什么时候
a = r;
是否在Java中合法?否,您需要将其分配给2d数组中的特定索引,并确保数组已初始化为从以下内容开始:
Object[][] a = new Object[5][5];
Exception[] r = new Exception[5];
a[0] = r;
因为所有东西都是Object的子类,所以只要赋值的维度匹配,就可以在2d数组中存储任何东西。这意味着您将能够:
a = r => if r is a 2d array as well
a[index] = r => if r is a 1d array
a[index-1][index-2] = r => if r is any type extending Object
在Java中,数组是对象的类型。因此,您可以:
Object a = null;
Object[][][] b = null;
a = b;
这也允许:
Object a[] = null;
Object[][][][] b = null;
a = b
但你永远不能反过来做。你怎么看?您的编译器告诉您什么?>异常[]无法再次转换为对象[][]:您认为如何?我投了反对票,因为。本例将花费您2分钟的时间亲自尝试。