對於這個特殊問題有幾種可能的原因,所以如果沒有你所有的代碼,很難說出什麼是失敗的。
下面是對我的作品的代碼:
(ns test)
(gen-class
:main false
:name test.Company
:methods [[setCompanyName [String] void]])
(defn -setCompanyName [this company] (println (str "company : " company)))
注:
- 你不需要任何吸氣
- 方法的簽名是在指定的:方法向量。
- 你的函數應該有一個額外的「這個」參數
- 創一流宏生成基於宏觀參數的一類,所以它不看在-setCompanyName函數定義的。
我找到的javap命令,看看有什麼GEN-類產生非常有用:
javap.exe -classpath classes/ test.Company
public class test.Company extends java.lang.Object{
public static {};
public test.Company();
public java.lang.String toString();
public boolean equals(java.lang.Object);
public java.lang.Object clone();
public int hashCode();
public void setCompanyName(java.lang.String);
}
我也建議你看一下第二個例子上http://clojuredocs.org/clojure_core/clojure.core/gen-class來看看如何管理國家。
你確定吸氣劑不需要嗎?該錯誤明確提及它,並且根據我的經驗,與java bean相關的代碼經常需要它。 –
嗨安德魯,我發佈響應之前測試了代碼,所以是的,我相信你不需要一個getter。 – DanLebrero
好的,很酷,謝謝。 –