1
我正在使用gen-class
來編寫Clojure類。我有一個「狀態」欄,我想在下面的代碼來訪問:將類型提示添加到Clojure gen-class狀態訪問
(ns com.example.sparetime.DateButton
(:gen-class
:extends javax.swing.JToggleButton
:init initialize
:state state
:constructors {[Integer] [String]})
(:import
[java.awt Insets]))
(if *compile-files*
(set! *warn-on-reflection* true))
(def insets (Insets. 1 1 1 1))
(defn -initialize [day-number]
[[(Integer/toString day-number)] day-number])
(defn get-day-number [this]
(.state this))
(defn -getInsets [this]
insets)
我得到含(.state this)
行了反射警告。我試着用(.state ^DateButton this)
添加一個類型提示,但是後來我得到編譯器無法解析的編譯錯誤DateButton
(雞和蛋?編譯器完成編譯該文件之前Datebutton不存在)。
沒關係類型暗示此代碼的智慧。我該怎麼做?我需要完全符合DateButton
包嗎?