2017-01-19 147 views
-1

所以我有一个2d数组,我在测试程序类中创建,然后我试图发送它并在构造函数中创建一个副本,但得到一个空错误。我哪里错了? 构造:传递一个二维数组到一个构造函数

public TheaterSeatSeller(int[][] newSeats) 
{ 
    for(int i=0; i<newSeats.length; i++) 
    { 
    for(int j=0; j<newSeats[i].length; j++) 
    { 
    seats[i][j]=newSeats[i][j]; 
    } 
    } 

} 

,然后测试类

public static void main(String[] args){ 
    //initialize the available seats 
    int[][] emptySeats = { 
     {10,10,10,10,10,10,10,10,10,10}, 
     {10,10,10,10,10,10,10,10,10,10}, 
     {10,10,10,10,10,10,10,10,10,10}, 
     {10,10,20,20,20,20,20,20,10,10}, 
     {10,10,20,20,20,20,20,20,10,10}, 
     {10,10,20,20,20,20,20,20,10,10}, 
     {20,20,30,30,40,40,30,30,20,20}, 
     {20,30,30,40,50,50,40,30,30,20}, 
     {30,40,50,50,50,50,50,50,40,30}}; 
    TheaterSeatSeller mySeats = new TheaterSeatSeller(emptySeats); 
    } 
+0

什么是确切的错误?信息?电话号码?谢谢 –

+0

可能重复[什么是NullPointerException,以及如何解决它?](http://stackoverflow.com/questions/218384/what-is-a-nullpointerexception-and-how-doi-i-fix-它) – Keiwan

+0

注意:在Java中没有2d数组,你正在使用一个数组数组 –

回答

0

你必须指定的值之前,初始化数组席位。这应该解决它。

public TheaterSeatSeller(int[][] newSeats) { 
    seats = new int[newSeats.length][newSeats[0].length]; 
    for (int i = 0; i < newSeats.length; i++) { 
     for (int j = 0; j < newSeats[i].length; j++) { 
      seats[i][j] = newSeats[i][j]; 
      System.out.println(seats[i][j]); 
     } 
    } 

}