我需要使用弹簧注射在bean中设置我的自定义类(XYZ [] xyz)的数组。
如果这是一个对象数组,即(Object [] xyz),它使用列表集合可以正常工作,但当我将其更改为XYZ [] xyz时,我得到一个例外。
建议我需要做些什么来完成这个要求。
Class ABC {
private XYZ[] xyzArray;
public void setXyzArray(XYZ[] xyz) {
this.xyz = xyz;
}
}
Class XYZ {
private string str;
public void setStr(String str) {
this.str = str;
}
}
配置XML:
<bean id="abc" class="com.test.ABC">
<property name="xyzArray">
<list>
<bean ref="xyz"/>
</list>
</property>
</bean>
<bean id="xyz" class="com.test.XYZ">
<property name="str">
<value>Hello World</value>
</property>
</bean>
这个xyzArray没有被注射。
答案 0 :(得分:2)
尝试
<array value-type="com.test.XYZ">
<bean ref="xyz"/>
</array>
答案 1 :(得分:0)
this.xyz = xyz
应为this.xyzArray = xyz
。
答案 2 :(得分:0)
那是因为你在xyzArray setter函数中有错误。这不应该编译。 还要尝试保持类名的Java命名标准(应从大写字母开始,后跟小写)。