Spring 3当setter方法重载时如何设置属性
class SomeoneElsesAPI {
void setDirectory(File dir){...}
void setDirectory(String dir){...}
}
<bean id="someoneElsesAPI" class="com.someone.SomeoneElsesAPI">
<property name="directory">
<value type="java.lang.String">/etc</value>
</property>
</bean>
我有一个与上面的例子类似的情况,Spring 抛出一个 IllegalStateException 表明它无法将 String 转换为 File。
我如何告诉 spring 使用哪个重载方法?我认为当我在
参数中指定它时,spring 会弄清楚它。
class SomeoneElsesAPI {
void setDirectory(File dir){...}
void setDirectory(String dir){...}
}
<bean id="someoneElsesAPI" class="com.someone.SomeoneElsesAPI">
<property name="directory">
<value type="java.lang.String">/etc</value>
</property>
</bean>
I have a case similar to the above example, Spring is throwing an IllegalStateException indicating that it can't convert String to File.
How do I tell spring which of the overloaded methods to use? I thought spring would figure it out when I specified it in the <value type="...">
parameter.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我不知道这是否是一个令人满意的答案,但我避免重载我希望能够使用 IoC 连接的属性设置器。当我确实需要两个 setter 来(逻辑上)相同的属性时,我使用不同的 setter 名称...和 javadoc 注释来解释发生了什么。
I don't know if this is a satisfactory answer, but I avoid overloading property setters that I want to be able to wire using IoC. When I do need two setters for (logically) the same property, I use different setter names ... and javadoc comments to explain what is going on.