为什么会出现NullPointerException?

时间:2012-03-09 06:16:31

标签: java error-handling nullpointerexception

我正在尝试使用一个字符串并将其转换为int来比较第一个第一列和所有行中输入的字符串中的所有数字。当我输入一个数字时,我得到一个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 :(得分:10)

您没有在构造函数中初始化类成员zipdecoder,而是初始化一个新的局部变量(具有相同名称)。

更改此

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

 zipdecoder = new int[][]{

它应该有用。