我正在尝试将2D int数组int [] []保存到名为group的ParseObject:
ParseObject newGroup = new ParseObject("Group");
newGroup.put("group_name",grpName);
int[][] grpTable = new int[grpSize][grpSize];
initializeTable(grpTable,grpSize);
newGroup.put("group_table",grpTable);
在最后一行应用程序崩溃,抛出:
java.lang.IllegalArgumentException:值的类型无效:class [[I
是否无法在解析中保存2D数组?你能提供替代方案吗?
我知道对于常规数组我只能使用add函数,但它在这里不起作用。
答案 0 :(得分:1)
我不相信这是可能的。
我认为最简单的方法是将数据存储在单维数组中,并保留每行结束位置的计数器。
这是因为2D数组基本上是一维数组,只是呈现不同。
E.g:
[1,2,3
4,5,6
7,8,9];
可以表示为
[1,2,3,4,5,6,7,8,9];
只要您知道每行只有3个元素,将它转换回2D数组就很简单了。
以上是您的上述代码的外观,显然我需要看到initializeTable方法才能完全修复它。
ParseObject newGroup = new ParseObject("Group");
newGroup.put("group_name", grpName);
// Make the array grpSize*grpSize to handle rows/cols
// I.e if you normally had a 3x3 2d Array, this one would just be
// 9x1 instead.
int[] grpTable = new int[grpSize*grpSize];
// *Change initializeTable() to us a 1d array*.
initializeTable(grpTable, grpSize);
newGroup.put("group_table", grpTable);