我只是尝试使用现有的2d数组调用properties
和新的两个值sourceURL
和fetchURL
来创建新的2d数组。
public static String[][] setProperties(String[][] properties, String sourceURL, String fetchURL) {
String[][] propertyArray = new String[properties.length][];
for (int i = 0; i <= properties.length; i++) {
if (i < properties.length) {
propertyArray[i][0] = properties[i][0];
propertyArray[i][1] = properties[i][1];
} else {
propertyArray[properties.length][0] = sourceURL;
propertyArray[properties.length][1] = fetchURL;
return propertyArray;
}
}
return new String[0][];
}
当我这样做时,我在propertyArray[i][0] = properties[i][0];
行中得到一个异常说“预期的数组引用”。有人可以帮我创建这个功能吗?
答案 0 :(得分:4)
我想这个:
String[][] propertyArray = new String[properties.length][];
for (int i = 0; i <= properties.length; i++) {
if (i < properties.length) {
propertyArray[i][0] = properties[i][0];
错误,在调用列出的方法之前,您可能遇到类似的问题。
您正在构建一个size [x] []的propertyArray,这意味着第二个维度不存在。 调用propertyArray [i] [0]会导致错误。 您应该首先在要访问它的位置创建一个数组
propertyArray[i] = new String[properties[i].length];
此外,你运行i从0到properties.length(这意味着properties [i] =数组索引越界)
答案 1 :(得分:3)
您还没有设置数组的第二个维度。可能它会抛出NullPointerException
String[][] propertyArray = new String[properties.length][2];
你也错过了一个逻辑
properties.length+1
次。因此,最好将尺寸更改为properties.length+1
String[][] propertyArray = new String[properties.length+1][2];
答案 2 :(得分:1)
我想你想要
String[][] propertyArray = new String[properties.length + 1][];
您正在尝试添加额外的属性,因此您需要的元素比您给出的元素多一个。