Problema Estendendo uma classe em Clojure: ClassFormatError: Duplicar nome e assinatura campo
Pergunta
Eu estou tentando estender JButton com Clojure, mas eu tive um problema quando eu tento criar meus próprios construtores. Sempre que eu uso :constructors
com :gen-class
eu continuo recebendo um "ClassFormatError: Duplicar nome do campo e assinatura" mensagem quando tento instanciar minha classe.
I pensar Eu estou seguindo o Clojure docs corretamente. Estou fazendo algo errado?
Exemplo:
(ns test.gui.button
(:gen-class
:extends javax.swing.JButton
:constructors {[] [String]}
:init init))
(defn -init []
[["Click Me"] nil])
Solução
JButton
estende javax.swing.AbstractButton
que já tem um protegida init
método. Se você mudar o nome da função Clojure-init para, por exemplo, my-init
o problema se foi:
(ns test.gui.button
(:gen-class
:extends javax.swing.JButton
:constructors {[] [String]}
:init my-init))
(defn -my-init []
[["Click Me"] nil])
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow