如何将通用参数传递给Spring XML中的构造函数?

时间:2016-04-15 21:37:23

标签: java xml spring

我有一个班级

package com.foo;
public class Foo<T extends Number>{

    private T value;

    public Foo(T value){
        this.value=value;
    }

}

我正在尝试在Spring XML中实例化。

<bean id="myFoo" class="com.foo.Foo">
    <constructor-arg type="java.lang.Number" value="1" />
</bean>

但是当我运行我的App时,我收到了这个错误......

enter image description here

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

没有构造函数接受类型`java.lang.Number&#39;的参数。检查JavaDoc:java.lang.Number

您可以设置文字,但在您的情况下,您应该选择Integer,它从Number扩展。为了设置文字值,您将使用Spring的表达式语言。您可以执行以下操作:"#{new Integer(10)}"或简写:"#{10}"

<bean id="myFoo" class="com.foo.Foo">
    <constructor-arg type="java.lang.Number" value="#{new Integer(10)}" />
</bean>