我做了一个二维数组,它将存储对父类Student
的子类对象的引用。
Student[][] a = new Student [5][4];
现在我想用null
初始化这个数组?我该怎么做?有什么技巧可以一次做吗?另外,我想知道是否可以在 Java 的基类数组中存储子类的引用?
我想用null
初始化所有值。另外,假设填充了一些值,然后我想用null
覆盖这些值。我该怎么做?
默认情况下,
JAVA 使用 null 初始化引用对象。
有三种方法,选择最适合您的。
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}, {...}, ...}
出于您的目的(来自评论),您可以使用 Arrays.fill(Object[] a, Object val)
.例如
for(Student[] array : a) Arrays.fill(array, null);
或
for(int i = 0; i < a.length; ++i)
for(int j = 0; j < a[i].length; ++j)
a[i][j] = null;
另外,我想知道是否可以在 Java 的基类数组中存储子类的引用?
是的,这是可能的。名为向上转换的过程(SubStudent
向上转换为Student
)。
a[0][0] = new SubStudent();
a[0][1] = new Student();