0

私はJavaに非常に慣れていないので、数時間これに固執しています。OrganizeBallots() を呼び出そうとするたびに、例外が発生します。私が読んだところによると、regionBallots を正しく初期化していないか、何かが null です。私には、配列を正しく初期化したように見えます.intであるため、nullではなく0にする必要があります。...しかし、私は間違っていると思います。どんな助けも大歓迎です!

編集:私が言ったように、私は新しいので、それが役立つかどうかはわかりませんが、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 に答える