【发布时间】:2016-04-01 09:21:48
【问题描述】:
import java.util.Scanner;
class TestMatrix
{
public static void main(String args[]){
Scanner in=new Scanner(System.in);
System.out.println("Enter the number of matrices: ");
int num=in.nextInt();
int[][] temp=new int[10][10];
Matrix[] matrixarray=new Matrix[num];
Matrix.numberOfMatrices(num);
for(int i=0;i<num;i++)
{
System.out.println("Enter the rows and columns of M["+(i+1)+"]: ");
int r=in.nextInt();
int c=in.nextInt();
System.out.println("Enter the values: ");
for(int x=0;x<r;x++)
for(int y=0;y<c;y++)
{
temp[x][y]=in.nextInt();
}
matrixarray[i].inputMatrixValues(temp);
}
}
}
public class Matrix
{
static int number;
int[][] matrix=new int[10][10];
int row,col;
public static void numberOfMatrices(int n)
{number=n;}
public void inputMatrixValues(int[][] matrix)
{
for(int i=0;i<row;i++)
for(int j=0;j<col;j++)
{
this.matrix[i][j]=matrix[i][j];
}
}
}
上述代码在第22行调用方法inputMatrixValues()时返回空指针异常。 matrixarray[i].inputMatrixValues(temp);
matrixarray 是 Matrix 类的对象数组。访问对象数组的第 i 个元素时发生异常。矩阵对象数组是在第 9 行创建的。请检查代码的哪一部分导致错误。
【问题讨论】:
-
Matrix[] matrixarray=new Matrix[num];这将创建一个长度为 num 的数组,其中填充了 null 这是异常的原因,因为您正在访问仅包含 null 引用的数组的一个索引。 -
@Xoce웃Пepeúpa 你说得对,将其作为评论发布。