Почему существует исключение NullPointerException? - PullRequest
1 голос
/ 09 марта 2012

Я пытаюсь использовать строку и преобразовать ее в целое число, чтобы сравнить первый первый столбец и все строки со всеми числами в набранной строке. Когда я набираю число, я получаю исключение 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 Ответ

10 голосов
/ 09 марта 2012

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

Изменить это

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

до

 zipdecoder = new int[][]{

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

...