Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
向Clojure gen类状态访问添加类型提示_Clojure_Type Hinting - Fatal编程技术网

向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
提示将起作用并消除反射