0

我有 2 个数组,都是 4*4 数组。我想从第一个数组中复制一个元素并将其放入第二个数组中,然后显示包含新元素的第二个数组。但是,我遇到了一个错误。

我正在使用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”的地方。我认为将一个元素复制到另一个数组中只是一个赋值语句。有没有更有效的方法来复制一个元素并显示新数组?有人知道如何解决这个问题吗?

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 回答