Spring:如何使用泛型在Spring配置中注入ENUM?

Pee*_*201 12 java generics spring

我有一个这样的课:

public class CheckSetFilter<E extends Enum<E>> 
{
   public CheckSetFilter(CheckSetManager<E> pCheckSetManager, E pCheckSetId)
}
Run Code Online (Sandbox Code Playgroud)

我有这个枚举:

public enum StubCheckId
{
   STUBCHECK1, STUBCHECK2
}
Run Code Online (Sandbox Code Playgroud)

我尝试用Spring创建这样一个对象:

<bean id="checkSetFilter" class="com.iba.icomp.core.checks.CheckSetFilter">
   <constructor-arg ref="checkSetManager"/>
   <constructor-arg value="STUBCHECK1"/>
</bean>
Run Code Online (Sandbox Code Playgroud)

它抱怨,它无法从String转换为Enum.我想这是因为通用.它无法知道要创建的枚举类型.我也尝试给它一个类型提示,但没有运气.

mab*_*aba 27

你真正需要做的就是添加一个value标签constructor-arg标签.

<bean id="checkSetFilter" class="com.iba.icomp.core.checks.CheckSetFilter">
    <constructor-arg ref="checkSetManager"/>
    <constructor-arg>
        <value type="your.package.StubCheckId">STUBCHECK1</value>
    </constructor-arg>
</bean>
Run Code Online (Sandbox Code Playgroud)