我有一个clojure类,我使用spring bean初始化初始化。
我的setter方法如下
(defn -setCompanyName [currency](println(str“company:”company)))
Bean初始化如下
<bean id="company" class="test.Company" p:companyName="orce"/>
我收到了以下错误。
bean类[test.Company]的属性“companyName”无效:Bean属性 'companyName'不可写或具有无效的setter方法。是否 setter的参数类型与getter的返回类型匹配?
有谁知道这个问题的根本原因。
此致 Isuru。
答案 0 :(得分:3)
这个特定问题有几种可能的原因,因此如果没有所有代码,很难说出什么是失败的。
以下是适用于我的代码:
(ns test)
(gen-class
:main false
:name test.Company
:methods [[setCompanyName [String] void]])
(defn -setCompanyName [this company] (println (str "company : " company)))
注意:
我发现javap命令非常有用,可以看到gen-class正在生成什么:
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上的第二个示例,了解如何管理状态。
答案 1 :(得分:0)
你不需要另一个功能参数吗?第一个充当了这个&#39;这个&#39;指针。我现在无法通过手机对此进行测试。