2013-03-05 39 views
6

下面的工作:如何通過Java方法序列映射到執行

(map #(%1 "21") [identity]) 

但是下面的代碼失敗

(map #(%1 "21") [.toString]) 

如何創建Java方法一序列/集合?

+1

你已經得到了答案只是匿名函數來創建功能,但我最關注的使用情況下,導致你要問的問題。我似乎無法找到一個。我寧願將它們「壓縮」在一起以構建一個執行的函數。 – 2013-03-06 04:15:58

回答

10

Java方法不是像clojure中的函數一樣的頭等公民。您不能將java方法作爲參數傳遞,返回或存儲在變量和集合中。但是你可以通過memfn或原包裝的方法調用

(map #(%1 21) [(memfn toString)]) 
=> ("21") 

(map #(%1 21) [#(.toString %)]) 
=> ("21") 
相關問題