cry*_*tar 6 java methods interop arguments clojure
我想将Clojure代码嵌入到Java中.这个站点有助于设置它的基础知识,但它传递的唯一arg是String类型.我也试过使用整数,这些也有效.
我的问题是是否有一些格式化的方法将结构化数据传递给Clojure.特别是,我有一个我希望传递给Clojure的点列表,并变成一个看起来像这样的向量:
[[1 2] [3 4] [5 6]]
这样做最简单的方法是什么?有没有我可以在Java端做的预处理,或者我应该在Clojure结束时进行后处理,还是在Clojure中有什么东西可以处理这个?我怀疑它传递了一串数字和每个元组到Clojure的长度,并让它将String处理成一个向量.然而,Clojure的这方面没有很多例子,我很好奇我是否遗漏了一些明显的东西.
编辑:请看mikera的答案是你对传递Java Objects感兴趣.如果您只是想提前将数据格式化为集合/地图/等的Clojure格式,请查看下面的答案.
这在一定程度上取决于数据的开始格式,但您可能会发现最简单的方法是直接传递表示数据的 Java 对象并使用 Clojure 的 Java 互操作性功能读取它。
例如,您可以直接传递 Java Points 数组并执行以下操作:
(let [point (aget some-array index)]
  (do-stuff-with-point point))