Spring、bean 和枚举的 valueOf
当从 Eclipse 调用 Spring 的“Validate”时,当我想使用 Enum 的隐式 "valueOf" 方法返回枚举时,会出现很多错误。
例如:
<bean id="docFamily" class="...DocFamily" factory-method="valueOf">
<constructor-arg>
<value>LOGY</value>
</constructor-arg>
</bean>
Eclipse 告诉我:
非静态工厂方法“valueOf” 有 1 个参数在工厂中未找到 豆类...
但是据我从文档中了解到:
BeanWrapperImpl 支持 JDK 1.5 枚举 和旧式枚举类:String 值将被视为枚举值 名称
那么上面的应该可以正常工作吗? (顺便说一句,在这种情况下,“constructor-arg”是正确的标签,难道不应该是“method-arg”吗?)。
为什么 Eclipse/Spring 的“验证”给我该错误消息?
When calling Spring's "Validate" from Eclipse, I get a lot of errors when I want to get back an enum using Enum's implicit "valueOf" method.
For example:
<bean id="docFamily" class="...DocFamily" factory-method="valueOf">
<constructor-arg>
<value>LOGY</value>
</constructor-arg>
</bean>
has Eclipse telling me:
Non-static factory method 'valueOf'
with 1 arguments not found in factory
bean class ...
However as I understand it from the documentation:
BeanWrapperImpl supports JDK 1.5 enums
and old-style enum classes: String
values will be treated as enum value
names
So the above should work right? (btw is 'constructor-arg' the correct tag in that case, shouldn't it be some 'method-arg'?).
Why is Eclipse/Spring's "Validate" giving me that error message?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
Enum.valueOf()
有两个参数:因此所需的定义可能如下所示:
但是,这样的解决方案可能是更优雅的解决方案:
Enum.valueOf()
has two arguments:Therefore the desired definition may look like this:
However, something like this can be a more elegant solution:
我只是尝试像这样使用它:
它很有魅力。它对你有用吗?
I just tried using it like this:
and it worked like charm. Does it works for you?