0

2 つの配列があり、どちらも 4*4 配列です。最初の配列から 1 つの要素をコピーして 2 番目の配列に入れ、新しい要素を含む 2 番目の配列を表示します。ただし、エラーが発生します。

呼び出しを使用しdeepToStringて配列を印刷しています。以下は私のコードです:

    public static void main(String [] args)
    {
      System.out.print("Enter a row and column # for your first selection?");
     row = scan.nextInt();   //user enters row #
     column = scan.nextInt();   //user enters column #
     service.show(row, column);   //row and column # passed as parameters 
     System.out.println(Arrays.deepToString(board1));   //this will display board1
          //with the new element, leaving the rest of the elements untouched

     }

     Public void show(int row, int column)
      {
       Int a = row;
       Int b = column;
       board1[a][b] = board2[a][b];   //destination on left, source on right
                          //board1 is taking an element from index [a][b] in board2
       }

board1[a][b] = board2[a][b];は、「」を取得しているところですNullPointerException。ある要素を別の配列にコピーするのは単なる割り当てステートメントだと思いました。1 つの要素をコピーして新しい配列を表示するより効率的な方法はありますか? これを修正する方法について誰か考えがありますか?

4

2 に答える 2

2

明らかに、グローバル変数「board1」と「board2」があります。それらが宣言されている場所を見て、メモリを割り当てたことを確認します。Java では、次のように配列メモリを割り当てる必要があります。

Int board1[][] = new Int[256][8];
于 2013-09-19T13:38:05.117 に答える
0

コードの外観から、クラス名はサービス(または投稿したクラスのインスタンス)だと思いますが、show()メソッドは静的ではないため、静的コンテンツから到達できません新しいオブジェクトとしてサービスを開始しませんでした。確認できるように、完全なコードを投稿していただけますか?

于 2013-09-19T14:10:11.043 に答える