1
我试图建立一个Spring bean
这样的Java Spring IoC来构造带参数的注入名单<Integer>
<bean id="id" class="java.util.ArrayList" scope='prototype'>
<constructor-arg>
<list>
<bean class='MyClass'>
<property name='id' value='1313'/>
<property name="name" value='John Lennon'/>
<property name='wifes'>
<list>
<bean class="WifeClazz">
<constructor-arg index='0' value='Cynthia Lennon'/>
<constructor-arg index='1'>
<list><value>1962</value><value>1968</value></list>
</constructor-arg>
</bean>
</list>
</property>
</bean>
</list>
</constructor-arg>
</bean>
这仅仅是一个例子了WifeClazz
名字只是用于例如..有具有构造函数字符串和一系列整数.. like this example
new WifeClazz("Cinthia Lennon",java.util.Arrays.asList(1,2,3,4,5,6,7,8));
整数可以是severals从1到10的整数。
,但我认为这是一种讨厌做这样的事情
<constructor-arg index='1'>
<list>
<value>1</value>
<value>2</value>
<value>3</value>
<value>4</value>
</list>
</constructor-arg>
将是巨大的,如果我可以做这样的事情
<constructor-arg index='1'>
<value>#{T(java.util.Arrays).asList(1,2,3,4)}</value>
</constructor-arg>
但抛出异常任何线索?
任何帮助非常感谢。
UPDATE
我有根据埃德温·一个像这样更改我的代码。
<constructor-arg index="1" type="java.util.Collection" value="#{T(java.util.Arrays).asList(1,2,3,4,5)}"/>
但抛出
Caused by: java.lang.IllegalArgumentException: Final expected argument should be array type (the varargs parameter)
我的目标是clazz中
public MyClass(final String name,final List<Integer>years){}
我生成的代码
<bean id="id" class="java.util.ArrayList" scope='prototype'>
<constructor-arg>
<list>
<bean class='MyClass'>
<property name='id' value='1313'/>
<property name="name" value='John Lennon'/>
<property name='wifes'>
<list>
<bean class="WifeClazz">
<constructor-arg index='0' value='Cynthia Lennon'/>
<constructor-arg index="1" type="java.util.Collection" value="#{T(java.util.Arrays).asList(1,2,3,4,5)}"/>
</bean>
</list>
</property>
</bean>
</list>
</constructor-arg>
</bean>
这解决了招...
<constructor-arg index='1' type="java.util.List" value="#{{1,2,3,4,5}}"/>
我对第二个构造函数参数Edwin尝试了一下。 ' '但不成功。我做错了什么 –
chiperortiz
2014-09-25 21:05:31
你能否让你的答案多一点。多解释一下。 – chiperortiz 2014-09-25 21:07:07
所不同的是,我使用索引0,你正在使用索引1. – 2014-09-25 21:07:25