4

我正在尝试使用 Clojure 扩展 JButton,但是当我尝试创建自己的构造函数时遇到了问题。每当我尝试实例化我的类时:constructors,我都会不断收到“ClassFormatError:重复的字段名称和签名”消息。:gen-class

我正在正确地遵循Clojure 文档。难道我做错了什么?

例子:

(ns test.gui.button
  (:gen-class
   :extends javax.swing.JButton
   :constructors {[] [String]}
   :init init))

(defn -init []
  [["Click Me"] nil])
4

1 回答 1

6

JButtonextendsjavax.swing.AbstractButton已经有一个受保护的init方法。如果您将 Clojure-init 函数重命名为,例如,my-init问题就消失了:

(ns test.gui.button
  (:gen-class
   :extends javax.swing.JButton
   :constructors {[] [String]}
   :init my-init))

(defn -my-init []
  [["Click Me"] nil])
于 2009-11-07T08:59:21.563 回答