如何在 Java 中用 null 初始化这个二维数组?

Har*_*wis 2 java arrays null

我制作了一个二维数组,它将存储对父类的子类的对象的引用Student。

Student[][] a = new Student [5][4]; 
Run Code Online (Sandbox Code Playgroud)

现在我想用null? 我该怎么做?一次做的有什么技巧吗?另外,我想知道是否可以将子类的引用存储在 Java 中的基类数组中?

我想用null. 另外,假设填充了一些值,然后我想用null. 我怎么做?

Pri*_*oel 5

默认情况下,JAVA 将引用对象初始化为 null。


And*_*lko 5

三种方式,选择最适合你的。

Student[][] a = null; // reference to a equals null
Student[][] a = new Student[5][];  // {null, null, null, null, null}
Student[][] a = new Student[5][5];  // {{null, null, null, null, null}, {...}, ...}
Run Code Online (Sandbox Code Playgroud)

为了您的目的(来自评论),您可以使用Arrays.fill(Object[] a, Object val). 例如,

for(Student[] array : a) Arrays.fill(array, null);
Run Code Online (Sandbox Code Playgroud)

或者

for(int i = 0; i < a.length; ++i)
    for(int j = 0; j < a[i].length; ++j)
        a[i][j] = null;
Run Code Online (Sandbox Code Playgroud)

另外,我想知道是否可以将子类的引用存储在 Java 中的基类数组中?

是的,这是可能的。名为 upcasting ( SubStudentis upcasted to Student)的进程。

a[0][0] = new SubStudent();
a[0][1] = new Student();
Run Code Online (Sandbox Code Playgroud)