是否可以从 gen-class 方法中引用 Java 的“this”关键字?
我正在尝试在 Clojure 中实现冒失鬼的答案。但是,当我尝试在 run 函数中使用 'this' 时,我得到“java.lang.RuntimeException:无法解析符号:this in this context”。
(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 类,因此非常感谢任何一般的反馈/资源。