gpt4 book ai didi

java - Spring、bean 和枚举的 valueOf

转载 作者:搜寻专家 更新时间:2023-10-31 20:15:49 26 4
gpt4 key购买 nike

从 Eclipse 调用 Spring 的“Validate”时,当我想使用 Enum 的隐式 “valueOf” 方法取回枚举时,我遇到了很多错误。

例如:

<bean id="docFamily" class="...DocFamily" factory-method="valueOf">
<constructor-arg>
<value>LOGY</value>
</constructor-arg>
</bean>

Eclipse 告诉我:

Non-static factory method 'valueOf' with 1 arguments not found in factory bean class ...

但是据我从文档中了解到:

BeanWrapperImpl supports JDK 1.5 enums and old-style enum classes: String values will be treated as enum value names

所以上面的应该行得通吗? (顺便说一句,在这种情况下,'constructor-arg' 是正确的标签,它不应该是一些 'method-arg' 吗?)。

为什么 Eclipse/Spring 的“验证”给我错误信息?

最佳答案

Enum.valueOf() 有两个参数:

public static <T extends Enum<T>> T valueOf(Class<T> enumType, String name)

因此,所需的定义可能如下所示:

<bean id="docFamily" class="java.lang.Enum" factory-method="valueOf">
<constructor-arg index = "0"><value>...DocFamily</value></constructor-arg>
<constructor-arg index = "1"><value>LOGY</value></constructor-arg>
</bean>

然而,像这样的东西可能是一个更优雅的解决方案:

<util:constant id = "docFamily" static-field = "...DocFamily.LOGY" />

关于java - Spring、bean 和枚举的 valueOf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4796878/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com