首页 > 解决方案 > 将固定数组设置为新大小时绕过 NullPointerException

问题描述

我正在尝试获取方形二维数组的一行的长度,我使用这种方法设置了它的大小:

public static void create (String[][] x, int y) {
    x = new String[y][y];
}

出现的错误是“空指针异常”,我知道我可以通过摆脱争论并使用我想在方法中更改的二维数组变量来解决这个问题,但我只是想知道是否有一种方法可以解决这个错误。

标签: javaarraysstringpointersnullpointerexception

解决方案


正如我在评论中已经说过的那样,您尝试做的事情是不可能的。如果您仍然想要工厂方法,请更改方法:

public static void create (String[][] x, int y) {
    x = new String[y][y];
}

到以下:

public static String[][] create (int y) {
    return new String[y][y];
}

这将创建一个长度为 的二维二次数组y。这可以像下面的代码片段一样使用:

String[][] myArray = create(32);

这将等同于:

String[][] myArray = new String[32][32];

在我看来,后者要清楚得多。为这样一个小数组创建添加一个方法可能是过度设计的。即使您必须创建 200 个数组实例。如果您使用数组创建语法 ( new String[][]) 内联会更清楚。


推荐阅读