向Clojure gen类状态访问添加类型提示
我正在使用向Clojure gen类状态访问添加类型提示,clojure,type-hinting,Clojure,Type Hinting,我正在使用genclass编写Clojure类。我有一个“状态”字段,我正试图在以下代码中访问该字段: (ns com.example.sparetime.DateButton (:gen-class :extends javax.swing.JToggleButton :init initialize :state state :constructors {[Integer] [String]}) (:import [java.awt Inset
genclass
编写Clojure类。我有一个“状态”字段,我正试图在以下代码中访问该字段:
(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
包吗?您必须导入类或完全限定其名称。然后,^DateButton
提示将起作用并消除反射。您必须导入类或完全限定其名称。然后,^DateButton
提示将起作用并消除反射