Я пишу класс 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
?