aget returns 应用于 `make-array` 数组时的 java 对象

aget returns a java object when applied to a `make-array` array

我希望以下代码能够 return (0,0) 值。然而我得到了一个 java 对象

(let [axs (make-array Long 5 5 0)]                                                                                                                                                                                                                                              
  (aget axs 0 0))        

此外,我在尝试改变索引 (0,0) 时遇到了类型不匹配问题

(let [axs (make-array Long 5 5 0)]                                                                                                                                                                                                                                              
  (aset axs 0 0 1))  

我希望将 Long[5][5] java 数组初始化为零。我在这里错过了什么?

谢谢

make-array 的第三个参数不会用零初始化您的数组,而是添加第三个数组维度,其大小等于零。结果,数组的大小也为零。要解决此问题,请按如下方式创建数组:

(make-array Long/TYPE 5 5)

这将创建 原始长数组 并将其初始化为零。