【问题标题】:NullPointerException in array of objects [duplicate]对象数组中的 NullPointerException [重复]
【发布时间】: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 你说得对,将其作为评论发布。

标签: java arrays object


【解决方案1】:

NullPointerException 被引发是因为你还没有初始化你的Matrix[] matrixarray=new Matrix[num];matrixarray[0]{for example} 是 null,当您调用 matrixarray[i].inputMatrixValues(temp); 这会导致 NullPointerException

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-27
    • 1970-01-01
    • 1970-01-01
    • 2015-01-06
    • 1970-01-01
    相关资源
    最近更新 更多