مشكلة توسيع فئة في كلوجر: ClassFormatError: تكرار اسم الحقل وتوقيع
سؤال
وأنا أحاول أن تمديد JButton مع كلوجر، لكنني واجهت مشكلة عند محاولة إنشاء منشئات الخاصة. كلما كنت تستخدم :constructors
مع :gen-class
وأظل الحصول على "ClassFormatError: تكرار اسم الحقل وتوقيع" رسالة عند محاولة إنشاء مثيل صفي.
أنا <م> التفكير م> أنا عقب كلوجر مستندات بشكل صحيح. أفعل شيئا خاطئا؟
مثال:
(ns test.gui.button
(:gen-class
:extends javax.swing.JButton
:constructors {[] [String]}
:init init))
(defn -init []
[["Click Me"] nil])
المحلول
وJButton
يمتد javax.swing.AbstractButton
التي لديها بالفعل محمية <لأ href = "http://java.sun.com/javase/6/docs/api/javax/swing/AbstractButton.html#init٪28java.lang.String، ٪ 20javax.swing.Icon٪ 29 "يختلط =" noreferrer "> طريقة init
. إذا قمت بإعادة تسمية الخاص بك وظيفة كلوجر-الحرف الأول ل، على سبيل المثال، my-init
المشكلة هو ذهب:
(ns test.gui.button
(:gen-class
:extends javax.swing.JButton
:constructors {[] [String]}
:init my-init))
(defn -my-init []
[["Click Me"] nil])
لا تنتمي إلى StackOverflow