Добавление подсказки типа в доступ к состоянию класса Gen Clojure - PullRequest
1 голос
/ 08 июля 2011

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

1 Ответ

1 голос
/ 11 июля 2011

Вы должны импортировать свой класс или полностью уточнить его имя.Тогда подсказка ^DateButton сработает и устранит отражение.

...