java - 将固定数组设置为新大小时绕过 NullPointerException
问题描述
我正在尝试获取方形二维数组的一行的长度,我使用这种方法设置了它的大小:
public static void create (String[][] x, int y) {
x = new String[y][y];
}
出现的错误是“空指针异常”,我知道我可以通过摆脱争论并使用我想在方法中更改的二维数组变量来解决这个问题,但我只是想知道是否有一种方法可以解决这个错误。
解决方案
正如我在评论中已经说过的那样,您尝试做的事情是不可能的。如果您仍然想要工厂方法,请更改方法:
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[][]
) 内联会更清楚。
推荐阅读
- javascript - 检查页面中是否呈现了 javascript DOM 元素
- jasmine - 如何在 Protractor 中使用 Jasmine 3.3 或更高版本?
- neo4j - Neo4J子查询相同的属性来计算比率
- reactjs - Expect 不是反应测试库中的函数
- angularjs - 有没有办法在新的角度应用程序中找到pendingReuests
- machine-learning - 不完整数据的均值居中
- javascript - CSS - 模糊 div 内的模糊 div 问题
- javascript - “即使其 MIME 类型(“text/html”)不是有效的 JavaScript MIME 类型,也已加载 php 脚本”错误
- swift - 转换 Binding 类型的两个值
绑定 - javascript - React 自动完成获取对象 onchange 事件