如何调用从Java获取二维字符串数组的Clojure函数?
基本上,这个问题说明了一切 当我在gen类中声明函数签名时,我应该为2D字符串数组设置什么类型如何调用从Java获取二维字符串数组的Clojure函数?,java,clojure,clojure-java-interop,Java,Clojure,Clojure Java Interop,基本上,这个问题说明了一切 当我在gen类中声明函数签名时,我应该为2D字符串数组设置什么类型 [myFunc [XXXX] ReturnType] 我应该为XXXX放什么 更新:根据@Mark Topolnik的建议,我正在尝试 #^{:static true} [myFunc [ ^"[[Ljava.lang.String;" ] clojure.lang.IFn] 在我的声明中,我得到了一个 java.lang.RuntimeException: Unmatched delimite
[myFunc [XXXX] ReturnType]
我应该为XXXX放什么
更新:根据@Mark Topolnik的建议,我正在尝试
#^{:static true} [myFunc [ ^"[[Ljava.lang.String;" ] clojure.lang.IFn]
在我的声明中,我得到了一个
java.lang.RuntimeException: Unmatched delimiter: ]
当我试图编译它时出现运行时异常
更新2:通过从上面的行中删除^。(这是在gen类中声明函数签名的上下文中,因此“^”可能是不必要的。)多维数组类型在Clojure中没有直接支持,但您可以始终使用具有二进制类型名称的字符串。在您的情况下,如下所示:
[myFunc ["[[Ljava.lang.String;"] ReturnType]
相关:。因此,我猜
^“[[Ljava.lang.String”字符串将是唯一(丑陋的)方式。这不是数组的一个维度吗?初始开括号的数量指定数组的深度。谁知道L
作为助记符代表什么,但它意味着“引用类型”并且需要类型的完全限定名称,以;
结尾(我在评论中忘记了该名称)。@MarkoTopolnik,看起来您在评论中回答了问题。您不应该将其记录为正式答案,以便interstar可以接受吗?