Problema durante l'estensione di una classe in Clojure: ClassFormatError: nome campo duplicato e firma amp

StackOverflow https://stackoverflow.com/questions/1627747

  •  06-07-2019
  •  | 
  •  

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])
È stato utile?

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
scroll top