2010-10-23 114 views
2
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 3如何在setter方法过载时设置属性

如何判断弹簧使用哪种重载方法?当我在<value type="...">参数中指定它时,我认为spring会计算出来。

回答

3

我不知道这是否令人满意的答案,但我避免了重载属性设置器,我希望能够使用IoC进行连线。当我确实需要两个setter(逻辑上)相同的属性时,我使用不同的setter名称...和javadoc注释来解释发生了什么。

+0

同意,但这段代码是在Jetty的第三方应用程序,我发布了一个错误报告,要求他们这样做,但我不控制他们的代码。我正在考虑使用Java Config来解决这个问题。 – 2010-10-23 05:57:45

+1

创建隐藏重载setter的包装类。 – 2010-10-23 07:52:56

相关问题