0
我使用gen-class從我的Clojure代碼生成Java-classes。爲了使gen-class工作,我需要爲所有將添加到類中的方法添加第一個參數(這裏稱爲this
)。如何從clojure調用gen-class方法
(ns com.stackoverflow.clojure.testGenClass
(:gen-class
:name com.stackoverflow.clojure.TestGenClass
:implements [com.stackoverflow.clojure.TestGenClassInterface]
:prefix "java-"))
(def ^:private pre "START: ")
(defn java-addToString [this text post]
(str pre text post))
編譯後,在Java上下文中調用該方法正常工作。
(def var (com.stackoverflow.clojure.TestGenClass.))
(.addToString var "Aus Clojure heraus (Methode 1)." " :ENDE")
(. var addToString "Aus Clojure heraus (Methode 2)." " :ENDE")
但是我怎樣才能直接從Clojure開始呢?
由於缺少第一個參數,所以以下步驟不起作用。
(java-addToString "TexT" " :END")
簡單地用空的第一個參數調用該函數是不是很好的做法?
(java-addToString "" "TexT" " :END")
或者我應該增加一個功能(例如addToString
),我在內部使用,並調用一個將要添加到類文件的方法之一這個功能呢?