java.lang.NullPointerException调用int数组时

时间:2012-04-13 20:08:12

标签: java nullpointerexception

我对java很新,现在我已经坚持了几个小时。每当我尝试调用organizBallots()时,我都会得到异常。从我读到的,我没有正确初始化regionBallots或者某些东西是null。对我来说,看起来我已经正确初始化了数组,因为它是一个int,它应该是0,而不是null。 ...但我想我错了,非常感谢任何帮助!

编辑:正如我所说的我是新手所以我不确定它是否有帮助,但是另一个类中的另一个方法正在调用organizBallots()。

int[] regionBallots;        
regionBallots = new int[9];



public int[] organizeBallots( int incoming )
{

    if ( incoming >= 1 && incoming <= 10 )
        regionBallots[0]++;    // I get the exception here

    else if ( incoming >= 11 && incoming <= 20 )
        regionBallots[1]++;


    return regionBallots;

}

2 个答案:

答案 0 :(得分:2)

像这样:int[] regionBallots = new int[9];

除初始化程序外,您不能在方法外编写代码。 要使用初始化程序写:

{
  //here the initializing code
}

使用静态初始化程序写:

static {
    //here the static initializing code
}

答案 1 :(得分:1)

此代码对我有用,没有任何问题:

public class T {

    int[] regionBallots;

    public T() {
        regionBallots = new int[9];
    }

    public int[] organizeBallots(int incoming) {

        if (incoming >= 1 && incoming <= 10)
            regionBallots[0]++; //

        else if (incoming >= 11 && incoming <= 20)
            regionBallots[1]++;

        return regionBallots;

    }

    public static void main(String[] args) {
        T t = new T();
        for (int i = 0; i < 100; i++) {         
              System.out.println(t.organizeBallots(i));
              System.out.println(t.organizeBallots(i)[0]);
              System.out.println(t.organizeBallots(i)[1]); 
        }
    }

}