Ist es möglich, auf Java 'this' Schlüsselwort innerhalb einer gen-Klasse Methode zu verweisen?Clojure gen-class dieses Schlüsselwort
Ich versuche die Antwort von dardesm here in Clojure zu implementieren. Wenn ich jedoch versuche, 'this' in der run-Funktion zu verwenden, bekomme ich "java.lang.RuntimeException: Symbol kann nicht aufgelöst werden: dies in diesem Kontext."
(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"))
Hinweis: Dies ist mein erstes Mal zu erzeugen Java-Klassen in Clojure, so dass jedes allgemeines Feedback/Ressourcen werden sehr geschätzt.
Es sieht so aus, als ob das funktioniert. Ich hatte das schon früher in anderen Beispielen gesehen, nahm aber an, dass es explizit ein Teil der Methodensignatur in Java war, was für mich keine Option war, da ich eine existierende Methode überschrieben habe. Vielen Dank! – Porthos3