2013-02-19 38 views
2

我有一个构造函数的Java类采取可变数量的字符串参数是这样的:如何将clojure.lang.ArraySeq转换为Java String []?

public Foo(String...args); 

我试图创建一个的Clojure化妆FOO多方法来处理这个问题:

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

但是,当我与

(make-foo ["one" "two"]) 

调用它,我得到:抛出:IllegalArgumentException没有匹配的构造函数发现

我还希望能够与

(make-foo '("one" "two")) 

调用它,我看到有到阵列的变种整数,浮点数等,但没有字符串。那么我该如何处理这种情况呢?

回答

2

make-foo如果您将它写为(make-foo "one" "two"),或者您可以从其定义中删除&,然后传递它的顺序,那么写入的内容将起作用。

+0

删除&做了诡计。我没有意识到所有的defmethod形式都不必具有相同的参数签名 – klucar 2013-02-20 02:05:13

相关问题