【发布时间】:2015-09-22 12:51:04
【问题描述】:
我是 Spring Framework 的新手。我正在尝试使用 spring 合并两个集合。 Beans.xml
<bean name = "mainAccount" class="java.util.HashSet">
<constructor-arg>
<set>
<value>123</value>
<value>1234</value>
</set>
</constructor-arg>
</bean>
<bean name = "subAccount" class="java.util.HashSet" parent="mainAccount">
<constructor-arg>
<set merge="true">
<value>231</value>
<value>23221</value>
</set>
</constructor-arg>
</bean>
<bean id="helloWorld" class="com.tutorialspoint.HelloWorld">
<constructor-arg name="AccountIDs" ref="subAccount" />
</bean>
我无法将集合合并到子帐户集合中。 我得到了例外:-
相关原因: org.springframework.beans.factory.UnsatisfiedDependencyException:创建类路径资源[Beans.xml]中定义的名称为“subAccount”的bean时出错:通过类型为[int]的索引0的构造函数参数表示不满足的依赖关系:无法转换构造函数参数值[java.util.LinkedHashSet] 类型到所需类型 [int]:无法将类型“java.util.LinkedHashSet”的值转换为所需类型“int”;嵌套异常是 java.lang.IllegalArgumentException:无法将类型 [java.util.LinkedHashSet] 的值转换为所需类型 [int]:PropertyEditor [org.springframework.beans.propertyeditors.CustomNumberEditor] 返回不适当类型的值 [java.util. LinkedHashSet]
我的 HelloWorld.java 是:-
package com.tutorialspoint;
import java.util.HashSet;
import java.util.Collection;
import java.util.Iterator;
import java.util.Set;
public class HelloWorld {
private final Set<String>AccountIDs;
public HelloWorld(Collection<String> AccountIDs){
this.AccountIDs = new HashSet<String>(AccountIDs);
Iterator iterator = AccountIDs.iterator();
while (iterator.hasNext())
System.out.print( iterator.next() + ", " );
System.out.println();
}
}
当我传递父 bean 集“mainAccount”时,它会正确显示设置值,但是当我尝试传递子 bean“subAccount”时出现错误。我想将 mainAccount 合并到 subAcount。我尝试了所有可能的方法方法但无法解决此问题。一些指导会有所帮助。
【问题讨论】:
标签: java xml spring spring-mvc javabeans