java - 在 ParseObject 上保存 2D 数组

标签 java arrays parse-platform

我正在尝试将 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/

相关文章:

javascript - 解析 Cloudcode 错误分支需要 60 秒以上才能返回 : why?

javascript - 如何在 Parse 云 Javascript SDK 中创建此查询?

java - 如何居中裁剪线性布局的背景图像?

java - 异步启动 Activity 不出现

java - 即使没有网络或 gps,Android 应用程序的纬度和经度值也会出现

c++ - 指向数组访问的指针出现段错误

java - Java 数组排序和搜索

javascript - 检查对象是否为类数组

ios - 保存从查询中获取的用户的属性(即不在当前用户上)

java - 如何将自定义 MessageBodyWriter 应用于对象列表?