Я использую «прокси» для расширения различных классов Swing в приложении Clojure GUI, обычно с кодом, который выглядит примерно так:
(def ^JPanel mypanel
(proxy [JPanel] []
(paintComponent [#^Graphics g]
(.drawImage g background-image 0 0 nil))))
Это работает хорошо, но я не могу понять, какдобавьте дополнительные поля в новый расширенный класс, например, сделав фоновое изображение полем, которое впоследствии может быть обновлено.Это будет довольно простой и распространенной практикой в Java.
Есть ли хороший способ сделать это в Clojure?Или есть другой предпочтительный метод для достижения того же эффекта?