Java 是否可以使用枚举或命名常量设置bean参数?

Java 是否可以使用枚举或命名常量设置bean参数?,java,xml,spring,enums,instantiation,Java,Xml,Spring,Enums,Instantiation,比如我有 public enum ID { CODEC1, CODEC2 } 还有一颗豆子 public class Bean { private ID id; public ID getId() { return id; } public void setId(ID value) { this.id = value; } } 可以在Spring配置中使用符号名吗?比如说 <bean id="bean" class="Bean"> <paramete

比如我有

public enum ID { CODEC1, CODEC2 }
还有一颗豆子

public class Bean {
   private ID id;
   public ID getId() { return id; }
   public void setId(ID value) { this.id = value; }
}
可以在Spring配置中使用符号名吗?比如说

<bean id="bean" class="Bean">
   <parameter name="id" value="CODEC1"/>
</bean>

如果您使用的是Spring 3.1,那么您编写的代码应该可以工作。使用早期版本时,请尝试将枚举的
valueOf
定义为工厂方法:

<bean id="CODEC1" class="ID" factory-method="valueOf">
     <constructor-arg>   
         <value>CODEC1</value>
     </constructor-arg>
</bean>

编解码器1


尝试一下以下方法:

<property name="id" value="#{T(my.package.ID).valueOf('CODEC1')}"/>

您的意思是Spring 3+将看到字段类型为
enum
,并将自动扫描
enum
类以获取字符串表示形式吗???太好了!
<property name="id" value="#{T(my.package.ID).valueOf('CODEC1')}"/>