У меня есть два списка (тип vector), и я хочу выбрать один из них в качестве аргумента для инициализации bean-компонента. Однако, хотя напрямую передается вектор классу «Helper», работает конструктор («helper1» в примере ниже), передача hnc: данных, сгенерированных из метода, будет рассматриваться как Bean вместо Vector («helper2» ниже). Подробности ниже. Есть ли простой способ устранить эту ошибку? А.К.А. заставить helper2 работать? Спасибо,
- Java:
public class VectorPicker {
@Produces
public Vector chooseAVector(@("v1") v1, @("v2") v2) {
return v1;
}
}
- xml:
<util:list id="vector1" list-class="java.util.Vector">
<value>value1</value>
</util:list>
<util:list id="vector2" list-class="java.util.Vector">
<value>value2</value>
</util:list>
<bean name="vectorPicker" class="com.amazon.class.path.VectorPicker" />
<hnc:data name="chosenVector" ref="vectorPicker" method="chooseAVector" >
<property name="v1" ref="vector1" />
<property name="v2" ref="vector2" />
</hnc:data>
- Java:
public class Helper {
public Helper(Vector v) {...}
}
- xml:
<bean id="helper1" class="com.amazon.class.path.Helper">
<constructor-arg index="0" ref="vector1" />
</bean> # this is working fine
<bean id="helper2" class="com.amazon.class.path.Helper">
<constructor-arg index="0" ref="chosenVector" />
</bean> # this is throwing error
- Сообщение об ошибке:
rg.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'helper2' defined in class path resource [assembly/data/data.xml]: Unsatisfied dependency expressed through constructor parameter 1: Could not convert argument value of type [com.amazon.matrix.nestedcomponents.spi.bean.DataBean] to required type [java.util.Vector]: no matching editors or conversion strategy found