Может ли gen-class переопределить защищенный метод Java?

Я пытаюсь использовать Swing от Clojure, и меня смущает gen-class и я не могу сказать из документации, если это должно работать - paintComponent это защищенный метод на JPanelи я могу переопределить его, но когда я пытаюсь вызвать метод открытого суперкласса, я получаю java.lang.IllegalArgumentException: No matching method found: parentPaintComponent for class project.PicturePanel, Может кто-нибудь уточнить, почему у меня нет доступа к этому методу?

(ns project.PicturePanel
  (:gen-class
    :extends javax.swing.JPanel
    :name project.PicturePanel
    :exposes-methods {paintComponent parentPaintComponent}))

(defn -paintComponent [this g]
  (println this)
  (println g)
  (.parentPaintComponent this g))

1 ответ

Да! Код работает правильно, если вы убедитесь, что ваши скомпилированные файлы.class обновлены. Попробуйте перекомпилировать их!

Другие вопросы по тегам