Problema durante l'estensione di una classe in Clojure: ClassFormatError: nome campo duplicato e firma amp
Domanda
Sto cercando di estendere JButton con Clojure, ma ho riscontrato un problema quando provavo a creare i miei costruttori. Ogni volta che utilizzo : constructors
con : gen-class
continuo a ricevere un " ClassFormatError: nome campo duplicato & amp; firma " messaggio quando provo a creare un'istanza della mia classe.
Penso che sto seguendo correttamente Clojure docs . Sto facendo qualcosa di sbagliato?
Esempio:
(ns test.gui.button
(:gen-class
:extends javax.swing.JButton
:constructors {[] [String]}
:init init))
(defn -init []
[["Click Me"] nil])
Soluzione
JButton
estende javax.swing.AbstractButton
che ha già un init
. Se rinomini la tua funzione Clojure-init in, ad esempio, my-init
il problema scompare:
(ns test.gui.button
(:gen-class
:extends javax.swing.JButton
:constructors {[] [String]}
:init my-init))
(defn -my-init []
[["Click Me"] nil])
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow