Как установить значение аргумента для TreeSet весной?
public class Trainer {
String name;
TreeSet<String> batches;
public Trainer(String name, TreeSet<String> batches) {
super();
this.name = name;
this.batches = batches;
}
@Override
public String toString() {
StringBuilder x=new StringBuilder();
x.append("trainer:").append(name).append("\n");
x.append("batches:\n");
for(String a :batches)
{
x.append(a).append("\n");
}
return x.toString();
}
}
//здесь находится файл конфигурации
<beans>
<bean id="abc" class="Trainer">
<constructor-arg value="asfsad"/>
<constructor-arg>
<set>
<value>kasdaskdnas</value>
<value>sjbdlsas;dkas</value>
</set>
</constructor-arg>
</bean>
</beans>
Это вызывает исключение при попытке создания объекта для него, не может преобразовать значение аргумента конструктора типа [java.util.LinkedHashSet] в требуемый тип [java.util.TreeSet]:
Вы можете использовать util:set
tag
<beans>
<bean id="abc" class="Trainer">
<constructor-arg value="asfsad" />
<constructor-arg>
<util:set set-class="java.util.TreeSet">
<value>kasdaskdnas</value>
<value>sjbdlsas;dkas</value>
</util:set>
</constructor-arg>
</bean>
</beans>
Вы можете управлять реализацией Set
который будет использоваться для вашего Sring-управляемого набора, используя атрибут set-class
.
Что-то вроде этого: <set set-class="java.util.TreeSet">