如何在春天传递树集的值?

时间:2014-05-24 17:55:15

标签: java spring

如何在Spring中设置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]:

2 个答案:

答案 0 :(得分:4)

您可以使用util:set代码

<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>

答案 1 :(得分:0)

您可以使用Set属性控制要用于Sring管理集的set-class的实施。

这样的事情:<set set-class="java.util.TreeSet">