1

最初は、私の投稿をご覧いただきありがとうございます。基本的に、Math.randomを使用して、ランダムな整数で多次元配列を作成しようとしました。コードはコンパイルされ、nullポインタ例外エラーメッセージを返し続けます。オブジェクトの作成で何が間違っていたのかわかりません。誰かがコードの何が問題になっているのか教えてもらえますか?

public Table(int r, int c)
    {
        rows = r;
        columns = c;

        for (int i = 0; i < r; i++)
            for (int j = 0; j < c; j++)
                {
                    /*
                    * Here is where the error keeps returning, blueJ keeps pointing
                    * me to this line of code and it has to be the variables I am using
                    * in the array that are causing the issue. The only issue is I                       * don't know what to insert for that.
                    */
                    theTable[i][j] = (int)(100*Math.random());
                }
    }
4

3 に答える 3

1

コードのどこでテーブルを初期化していますか?その行でnullになるのはそれだけです。テーブルを宣言する場所で、それも定義していることを確認してください。

private int[][] theTable = new int[r][c]
于 2012-12-06T03:59:28.547 に答える
1

追加:

int[][] theTable = new int[r][c];

forメソッドに対してローカルにしたい場合は、ループの直前。クラスのメンバーにしたい場合は、次のように追加します

private int[][] theTable = new int[r][c];

あなたのクラスのトップで。

于 2012-12-06T03:59:32.450 に答える
0

あなたは宣言も初期化もしtheTableていないので、Javaには存在しません。Javaで存在しないオブジェクトを使用しようとすると、NullPointerExceptionが発生します。あなたの問題の解決策を与える正しい答えはすでにあります。彼らのコードを使用することをお勧めします。durron597は特にクリア/良いです。

于 2012-12-06T04:06:16.657 に答える