我编写了一个示例代码来使用 setter 方法练习 Spring Bean 注入。但是在我的输出中,我得到了一个内存地址而不是我需要的值(在 List Element 列表中作为第一个元素)。
我认为这是由于 ref bean="address1" 声明中的一些错误。
感谢您是否可以帮助我纠正此错误
这是我得到的输出
列表元素:[ com.springtutorial.Address@1b6101e,列王之战,剑风暴,群鸦盛宴,魔龙狂舞] 地址:Winterfell
这是 Bean 类代码
<bean id="javaCollection" class="com.springtutorial.JavaCollection">
<property name="addressList">
<list>
<ref bean="address1"/>
<value>Clash of Kings</value>
<value>Storm of Swords</value>
<value>Feast for Crows</value>
<value>Dance with Dragons</value>
</list>
</property>
</bean>
<bean id="address1" class="com.springtutorial.Address">
<property name="address" value="Winterfell"/>
</bean>
这是地址类代码
public class Address {
String address;
public String getAddress() {
System.out.println("Address :"+address);
return address;
}
public void setAddress(String address) {
this.address = address;
}
Java 集合类`public class JavaCollection {
List addressList;
public List getAddressList() {
System.out.println("List Elements: " + addressList);
return addressList;
}
public void setAddressList(List addressList) {
this.addressList = addressList;
}
}
`
主课是这样的
public static void main(String[] args) {
ApplicationContext ctx = new ClassPathXmlApplicationContext("Beans.xml");
JavaCollection jc = (JavaCollection) ctx.getBean("javaCollection");
Address obj = (Address) ctx.getBean("address1");
jc.getAddressList();
jc.getAddressSet();
jc.getAddressMap();
jc.getAddressProp();
obj.getAddress();
}`