2014-10-17 58 views
1

到目前爲止,我發現了兩種方法可以從Java調用靜態方法作爲Clojure中的函數。如何在Clojure中連續調用幾個(靜態)Java方法

;; using . 
(. Math min 12 13) 
;; using/
(Math/min 12 13) 

當使用一個呼叫的返回值進行下一次呼叫時,呼叫會變得更加複雜。

(. (. System out) println "Static call from Clojure.") 

似乎使用「/」符號到不行:

((System/out) /println "Static call from Clojure.") 

大概 - 符號是爲了處理這種方法通話「」在我看來,即使連續只有兩個方法調用,「。」 - 符號也很難讀取。

有沒有更清晰的方法來調用連續的方法?

回答

4

您是否知道這種表示法?

(.. System (getProperties) (get "os.name")) 

注意這兩點。

這將擴大到:

(. (. System (getProperties)) (get "os.name")) 

Java Interop上Clojure.org。

1

請嘗試以下操作。

(-> (System/out) (.println "Static call from Clojure."))