2017-01-19 6 views
-1

したがって、私はテスタークラスで作成した2次元配列を持っていますし、それを送信し、コンストラクタで複製を作成しようとしていますが、nullエラーが発生します。どこが間違っていますか? コンストラクタ: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-do-i-fix-それ) – Keiwan

+0

注:Javaには2次元配列はありません。配列の配列を使用しています –

答えて

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]); 
     } 
    } 

}