Java-Array<;初始化>;错误

Java-Array<;初始化>;错误,java,arrays,init,Java,Arrays,Init,我有一个类,它包含另一个类数组,在构造函数中,我想使“n”和“nCod”等于0 使用新建TableRow[256]创建数组实例时,其每个元素都初始化为null 因此,每个元素在被访问之前都应该初始化: arr = new TableRow[256]; for(int i=0;i<256;i++) { arr[i] = new TableRow (); // add this arr[i].n = 0; arr[i].nCod = 0; } arr=newtable

我有一个类,它包含另一个类数组,在构造函数中,我想使“n”和“nCod”等于0


使用
新建TableRow[256]
创建数组实例时,其每个元素都初始化为null

因此,每个元素在被访问之前都应该初始化:

arr = new TableRow[256];
for(int i=0;i<256;i++)
{
    arr[i] = new TableRow (); // add this
    arr[i].n = 0;
    arr[i].nCod = 0;
}
arr=newtablerow[256];

对于(int i=0;i当您使用
新建TableRow[256]
创建一个数组实例时,它的每个元素都初始化为null

因此,每个元素在被访问之前都应该初始化:

arr = new TableRow[256];
for(int i=0;i<256;i++)
{
    arr[i] = new TableRow (); // add this
    arr[i].n = 0;
    arr[i].nCod = 0;
}
arr=newtablerow[256];

对于(int i=0;i当您创建一个没有初始值的对象数组时,数组中的所有位置都将指向
null
。因此,例如,
arr=new TableRow[3]
将数组初始化为
[null,null,null]

由于您没有将任何
TableRow
对象存储到
arr
中,因此当您访问
arr[i]
时,它会返回
null
,而不是一个具体的对象。如果您尝试访问
null
中的字段,则会导致您观察到的
null点异常

您需要做的是创建
TableRow
实例,并在尝试访问它们之前将它们放入数组中。类似如下:

arr = new TableRow[256];
for (int i = 0; i < arr.length; i++) {
    arr[i] = new TableRow();
    arr[i].n = 0;
    arr[i].nCode = 0;
}
arr=newtablerow[256];
对于(int i=0;i
当您创建一个没有初始值的对象数组时,数组中的所有位置都将指向
null
。因此,例如,
arr=newtablerow[3]
将数组初始化为
[null,null,null]

由于您没有将任何
TableRow
对象存储到
arr
中,因此当您访问
arr[i]
时,它会返回
null
,而不是一个具体的对象。如果您尝试访问
null
中的字段,则会导致您观察到的
null点异常

您需要做的是创建
TableRow
实例,并在尝试访问它们之前将它们放入数组中。类似如下:

arr = new TableRow[256];
for (int i = 0; i < arr.length; i++) {
    arr[i] = new TableRow();
    arr[i].n = 0;
    arr[i].nCode = 0;
}
arr=newtablerow[256];
对于(int i=0;i
arr = new TableRow[256];
for (int i = 0; i < arr.length; i++) {
    arr[i] = new TableRow();
    arr[i].n = 0;
    arr[i].nCode = 0;
}