java - 从 Java 向 Clojure 传递参数

标签 java interop clojure methods arguments

我想将 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/

相关文章:

c# - 如何使用 WCHAR* 在消息框中显示来自 C# 的 C 函数

http - Clojure 黑色 : how to set up basic authentication for only a part of the application

java - 在 IntelliJ 中清理 Play 框架构建

java - 无需安装即可部署 Magnolia CMS

java - 如何在myBatis中使用selectKey一次向2个表插入数据

c# - .NET 互操作 IntPtr 与 ref

java - 从一个 java 文件读取并写入另一个文件

Git 与 Mercurial 存储库的互操作性

clojure - Clojure 中的 [] 和 '[] 有什么区别

clojure - 多行 Clojure 文档字符串