2013-02-19 41 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

相關問題