0

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

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

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;

}
4

2 回答 2

2

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

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

{
  //here the initializing code
}

要使用静态初始化程序,请编写:

static {
    //here the static initializing code
}
于 2012-04-13T20:11:17.440 回答
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]); 
        }
    }

}
于 2012-04-13T20:50:07.967 回答