【问题标题】:Getting around NullPointerException when setting a fixed array to a new size将固定数组设置为新大小时绕过 NullPointerException
【发布时间】:2018-05-25 08:14:52
【问题描述】:
我正在尝试获取正方形二维数组的一行的长度,我已使用此方法设置了其大小:
public static void create (String[][] x, int y) {
x = new String[y][y];
}
出现的错误是“空指针异常”,我知道我可以通过摆脱争论并使用我想在方法中更改的二维数组变量来解决这个问题,但我只是想要知道是否有办法绕过错误。
【问题讨论】:
标签:
java
arrays
string
pointers
nullpointerexception
【解决方案1】:
正如我在 cmets 中已经说过的,您尝试做的事情是不可能的。如果您仍然想要工厂方法,请更改方法:
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 的二维二次数组。这可以像下面的 sn-p 所示那样使用:
String[][] myArray = create(32);
相当于:
String[][] myArray = new String[32][32];
在我看来,后者要清楚得多。为这样一个小数组创建添加一个方法可能是过度设计的。即使您必须创建 200 个数组实例。如果使用内联数组创建语法 (new String[][]) 会更清晰。