2009-10-06 8 views
7
(set! *warn-on-reflection* true) 
(proxy [javax.swing.JPanel] [] 
    (paintComponent [#^java.awt.Graphics g] 
    (proxy-super paintComponent g) 
    (.fillRect g 100 100 10 10))) 

どのようにこの反射警告を打ち消すのですか?

+0

これを理解することができたら、私は知りたいと思うでしょう。私は 'proxy-super'の実装を調べました。保護されたメソッドを呼び出すと常に反映されるように見えますが、私はそれを正しく読んでいます。 –

答えて

1

プロキシスーパーは暗黙的にthisを使用するためです。

(let [^javax.swing.JPanel this this] 
    (proxy-super paintComponent g)) 
3

を「反射警告、paintComponentを呼び出すには解決できない」という警告が行の

(proxy-super paintComponent g) 

はjavax.swing.JPanelの親クラスを持っていているように見えますpaintComponentメソッド?

この行を削除すると、私のために機能します。

関連する問題