我该如何调用Clojure函数,该函数需要Java中的二维字符串数组?

int*_*tar 5 java clojure clojure-java-interop

问题基本上说明了一切。

在gen-class中声明函数签名时,对于二维字符串数组,我应该放置什么类型?

[myFunc [XXXX] ReturnType]
Run Code Online (Sandbox Code Playgroud)

我要为XXXX做什么?

更新:按照@Mark Topolnik的建议,我正在尝试

#^{:static true} [myFunc [ ^"[[Ljava.lang.String;" ] clojure.lang.IFn] 
Run Code Online (Sandbox Code Playgroud)

在我的声明中,我回来了

java.lang.RuntimeException: Unmatched delimiter: ]
Run Code Online (Sandbox Code Playgroud)

当我尝试编译运行时异常时。

更新2:通过删除上一行中的^进行修复。(这是在gen-class中声明函数签名的上下文中,因此^可能不必要。)

Mar*_*nik 3

Clojure 中不直接支持多维数组类型,但您始终可以使用带有二进制类型名称的 String。在您的情况下,这将如下所示:

[myFunc ["[[Ljava.lang.String;"] ReturnType]
Run Code Online (Sandbox Code Playgroud)