2016-04-15 46 views
0

我有一個類如何在Spring XML中將通用參數傳遞給構造函數?

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> 

但是當我運行我的應用程序,我得到這個錯誤...

enter image description here

我該如何解決這個問題?

回答

2

沒有構造函數接受`java.lang.Number'類型的參數。檢查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> 
相關問題