我正在尝试将 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: invalid type for value: class [[I
是否无法在解析中保存二维数组?你能提供替代方案吗?
我知道对于常规数组,我可以只使用 add 函数,但它在这里不起作用。
最佳答案
我不相信这是可能的。
我相信最简单的方法是将数据存储在单维数组中,并保留每行结束位置的计数器。
这是因为二维数组基本上都是一维数组,只是呈现方式不同。
例如:
[1,2,3
4,5,6
7,8,9];
可以表示为
[1,2,3,4,5,6,7,8,9];
只要您知道每行只有 3 个元素,将其转换回二维数组就很简单。
上面的代码是这样的,显然我需要查看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);
关于java - 在 ParseObject 上保存 2D 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30103332/