我想将 Clojure 代码嵌入到 Java 中。 This site 在设置它的基础知识方面很有帮助,但它传递的唯一参数是 String 类型。我也尝试过使用整数,它们也有效。
我的问题是是否有某种格式化的方法可以将结构化数据传递给 Clojure。特别是,我有一个要传递给 Clojure 的点列表,并将其转换为如下所示的 vector :
[[1 2] [3 4] [5 6]]
执行此操作最简单的方法是什么?我可以在 Java 端进行预处理,还是应该在 Clojure 端进行后处理,或者 Clojure 中有什么东西可以处理这个问题?我怀疑它正在将一串数字和每个元组的长度传递给 Clojure,然后让它将字符串处理成一个 vector 。但是,Clojure 这方面的示例并不多,我很好奇我是否遗漏了一些明显的东西。
编辑: 如果您对传递 Java 对象感兴趣,请查看 mikera 的回答。如果您只是想提前将数据格式化为集合/ map /等的 Clojure 格式,请查看我下面的回答。
最佳答案
这在一定程度上取决于您的数据以何种格式开始,但您可能会发现直接传递表示数据的 Java 对象并使用 Clojure 的 Java 互操作性功能读取它是最简单的。
例如您可以直接传递一个 Java 点数组并执行如下操作:
(let [point (aget some-array index)]
(do-stuff-with-point point))
关于java - 从 Java 向 Clojure 传递参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3055669/