在Clojure中扩展类的问题:ClassFormatError:重复的字段名称和签名

Cri*_*ian 4 oop clojure gen-class

我正在尝试使用Clojure扩展JButton,但是当我尝试创建自己的构造函数时遇到了一个问题.每当我使用时,当我尝试实例化我的类时:constructors,:gen-class我会不断收到"ClassFormatError:Duplicate field name&signature"消息.

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

例:

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

(defn -init []
  [["Click Me"] nil])
Run Code Online (Sandbox Code Playgroud)

jan*_*nko 6

JButtonjavax.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])
Run Code Online (Sandbox Code Playgroud)