2011-07-08 12 views
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(chickenとegg?Datebuttonはコンパイラがこのファイルのコンパイルを完了するまで存在しません)を解決できないというコンパイルエラーが発生します。

このコードをヒントしているタイプの知恵は気にしないでください。どうすればいいのですか? DateButtonパッケージを完全に修飾する必要がありますか?

答えて

1

クラスをインポートするか、その名前を完全修飾する必要があります。次に、^DateButtonヒントが働き、反射をなくします。

関連する問題