나는 Clojure 코드에서 Java 클래스를 생성하기 위해 gen 클래스를 사용한다. gen 클래스를 작동 시키려면 클래스에 추가 할 모든 메소드 (여기서는 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에서 직접 시작할 수 있습니까?
첫 번째 매개 변수가 없기 때문에 다음과 같은 Thge가 작동하지 않습니다.
(java-addToString "TexT" " :END")
단순히 첫 번째 매개 변수가 비어있는 함수를 호출하는 것이 좋습니까?
(java-addToString "" "TexT" " :END")
아니면 함수를 추가해야합니다 (예를 들어, addToString
) 내가 내부적으로 사용하고 클래스 파일의 방법으로 추가됩니다 하나에서이 함수를 호출하는?