简体   繁体   English

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

[英]How to pass a generic parameter to a constructor in Spring XML?

I have a class 我有一堂课

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

    private T value;

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

}

Which I'm trying to instantiate in Spring XML. 我正在尝试在Spring XML中实例化。

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

But when I run my App I get this error... 但是当我运行我的应用程序时,出现此错误...

在此处输入图片说明

How can I solve this? 我该如何解决?

There is no constructor accepting an argument for type `java.lang.Number'. 没有构造函数接受类型为java.lang.Number的参数。 Check the JavaDoc: java.lang.Number 检查JavaDoc: java.lang.Number

You can set a literal, but in your case, it appears you should choose Integer, which extends from Number. 您可以设置文字,但在这种情况下,您应该选择Integer,它从Number扩展。 In order to set the literal value, you would use Spring's expression language. 为了设置文字值,您将使用Spring的表达式语言。 You can either do: "#{new Integer(10)}" or the shorthand: "#{10}" 您可以执行: "#{new Integer(10)}"或速记: "#{10}"

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM