如何将clojure.lang.ArraySeq转换为Java String []?

时间:2013-02-19 03:07:04

标签: clojure

我有一个Java类,其构造函数采用可变数量的String参数,如下所示:

public Foo(String...args);

我正在尝试在Clojure中创建一个make-foo multimethod来处理这个问题:

(defmethod make-foo clojure.lang.ArraySeq [& args] (new Foo (into-array args)))

但是当我用

打电话时
(make-foo ["one" "two"])

我得到:IllegalArgumentException找不到匹配的ctor

我也希望能够用

来调用它
(make-foo '("one" "two"))

我看到有针对整数,浮点数等的数组变体,但没有字符串。那我该怎么办呢?

1 个答案:

答案 0 :(得分:2)

make-foo如果您将其称为(make-foo "one" "two"),则可以正常工作,或者您可以从其定义中删除&然后传递序列。