مشكلة توسيع فئة في كلوجر: ClassFormatError: تكرار اسم الحقل وتوقيع

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

  •  06-07-2019
  •  | 
  •  

سؤال

وأنا أحاول أن تمديد 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])
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top