2017-01-19 3 views
-1

Итак, у меня есть 2d-массив, который я создаю в классе тестера, а затем я пытаюсь отправить его и создать дубликат в конструкторе, но получить нулевую ошибку. Где я иду не так? Конструктор:Передача 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- it) – 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]); 
     } 
    } 

} 
Смежные вопросы