2016-04-01 79 views
-5
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()時返回空指針異常。對象數組中的NullPointerException

matrixarray是類Matrix的對象數組。訪問對象數組的第i個元素時發生異常。矩陣對象數組在第9行中創建。請檢查代碼的哪一部分會導致錯誤。

+0

'矩陣[] matrixarray =新的Matrix [NUM];' 這創建填充空 長度NUM的數組這是原因因爲您正在訪問僅包含空引用的數組的索引。 –

+0

@Xoce웃Pepeúpa您是對的,請將它作爲評論發佈。 –

回答

0

NullPointerException是因爲您尚未初始化您的Matrix[] matrixarray=new Matrix[num];而引發的。該matrixarray[0] {例如}是null和當調用matrixarray[i].inputMatrixValues(temp);這引起了NullPointerException