gen 클래스 방법에서 Java의 'this'키워드를 참조 할 수 있습니까?Clojure gen-class이 키워드
저는 Clojure에서 daredesm의 대답 here을 구현하려고합니다. 그러나 run 함수에서 'this'를 사용하려고하면 "java.lang.RuntimeException :이 컨텍스트에서 symbol : this를 해결할 수 없습니다."라는 메시지가 나타납니다.
(gen-class
:name ClipboardListener
:extends java.lang.Thread
:implements [java.awt.datatransfer.ClipboardOwner]
:prefix ClipboardListener-
:methods [[takeOwnership [Transferable] void]])
(def systemClipboard (.getSystemClipboard (java.awt.Toolkit/getDefaultToolkit)))
(defn ClipboardListener-run []
(let [transferable (.getContents systemClipboard this)]
(.takeOwnership transferable)))
(defn ClipboardListener-lostOwnership [clipboard trasferable] (prn "hit lost"))
(defn ClipboardListener-takeOwnership [transferable] (prn "hit take"))
(defn processClipboard [transferable clipboard] (prn "hit process"))
참고 : 이것은 Clojure에서 처음으로 Java 클래스를 생성하므로 일반적인 피드백/리소스를 크게 높이 평가합니다.
마치 작동하는 것 같습니다. 이전에 다른 예제에서이 예제를 보았지만 Java에서 메서드 시그니처의 일부라고 가정했습니다. 기존 메서드를 재정의 할 때부터 옵션이 아닙니다. 감사! – Porthos3