2012-03-09 3 views
1

Я пытаюсь mommertary использовать строку и преобразовать ее в int, чтобы сравнить первый первый столбец и все строки со всеми числами внутри введенной строки. Когда я ввожу число, я получаю исключение NullPointerException. Дело в том, что я не понимаю, почему компилятор говорит мне об этом, когда я чувствую, что я правильно объявил все свои объекты. пожалуйста помоги!Почему существует исключение NullPointerException?

import java.util.ArrayList; 

public class Decoder 
{ 

    private int[][] zipdecoder; 
    private ArrayList<Integer> zipcode; 
    private String finalCode; 
    private String bars; 
    private int place; 
public Decoder() 
{ 
    int[][] zipdecoder = new int[][]{ 
     {1,0,0,0,1,1}, 
     {2,0,0,1,0,1}, 
     {3,0,0,1,1,1}, 
     {4,0,1,0,0,0}, 
     {5,0,1,0,1,1}, 
     {6,0,1,1,0,0}, 
     {7,1,0,0,0,0}, 
     {8,1,0,0,1,1}, 
     {9,1,0,1,0,0}, 
     {0,1,1,0,0,0} 
     }; 
    zipcode = new ArrayList<Integer>(); 
} 

public void insertToArray(String zip) 
{ 
    int count = 0; 

    for(int i = 1; i<zip.length()+1;i++) 
    { 
     String piece = zip.substring(count, i); 

     int number = Integer.parseInt(piece); 
     for(int j = 0;j<10;j++) 
     { 
      if(number == zipdecoder[j][0]){ 
      for(int a = 1;a<5;a++) 
      { 
       zipcode.add(place,zipdecoder[j][a]); 
       place++; 
      } 
     } 
     count++; 
    } 

    } 
} 
+1

Отображение строки, где это происходит, было бы очень полезно. –

+0

Метод insertToArray, где он выдает exeption. Я сожалею о том, что. Он фактически компилируется просто отлично, программа вылетает, когда я запускаю его, давая ошибку в InsertToArrayMethod – James

ответ

10

Вы не инициализирует класс члена zipdecoder но новую локальную переменную (с тем же именем) в конструкторе.

Изменить этот

int[][] zipdecoder = new int[][]{ 

в

zipdecoder = new int[][]{ 

и он должен работать.

+0

, который объясняет многое. Спасибо! – James

+0

Это тот ответ, который я хотел. Я приму это, как только смогу – James

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