java - 使用 2D 双数组字面量初始化 Java Object 数组元素
问题描述
对于某个 API [1],数据数组必须作为 JavaObject
数组的元素传递(每个数组一个这样的元素)。以下工作正常,AInData
API 接受 2D 双精度数组作为第一个参数(并且只有 1 个参数):
double[][] AInData = {{1.1, 1.2, 1.3}, {2.1, 2.2, 2.3}};
Object[] arObj = { AInData };
由于浮点文字默认为double
,我想我可以不用中间变量AInData
:
Object[] arObj = { {{1.1, 1.2, 1.3}, {2.1, 2.2, 2.3}} };
这导致了以下错误:
illegal initializer for Object
Object[] arObj = { {{1.1, 1.2, 1.3}, {2.1, 2.2, 2.3}} };
^
illegal initializer for <none>
Object[] arObj = { {{1.1, 1.2, 1.3}, {2.1, 2.2, 2.3}} };
^
illegal initializer for <none>
Object[] arObj = { {{1.1, 1.2, 1.3}, {2.1, 2.2, 2.3}} };
^
为什么我不能废除AInData
?
如果字面量确实默认为double
,则在AInData
初始化时没有强制转换。
笔记:
[1] Matlab 接口
解决方案
其实你可以
Object [] arObj = new double [][][] {{{1.1, 1.2, 1.3}, {2.1, 2.2, 2.3}} };
推荐阅读
- ios - 等到应用内购买完成,直到执行操作
- css - 从底部绝对定位不创建溢出滚动条
- ssl - wso2 apim 1.10.0 SSL 通信
- typescript - 打字稿声明:模块检测和命名空间
- javascript - 更改从文本文件读取的 js 文件的样式
- redux - Redux saga:redux-saga 工作原理的内部结构
- xslt - 如果 for-each 不存在,如何对数据进行排序
- php - gRPC 库已安装但不起作用
- c# - 无法完成基于 JSON 负载对象的批量更新
- python - 正则表达式 (?<=\s)\d(?=\s) 和 (?
为什么是表达式
(?<=\s)\d(?=\s)
和表达式不一样
(?<!\S)\d(?!\S)
?
如何分析电子邮件是否使用python请求