创建类型为java.io.File[不明确的构造函数参数类型]的bean时出错

创建类型为java.io.File[不明确的构造函数参数类型]的bean时出错,java,spring,file,ambiguous,Java,Spring,File,Ambiguous,我有以下Springbean配置 <bean id="fileBean" class="java.io.File"> <constructor-arg type="java.lang.String" value="$prop{file.path.property}" /> </bean> java.io.File只有一个构造函数,只有一个字符串参数,所以我不确定为什么会有歧义。感谢您的帮助。

我有以下Springbean配置

  <bean id="fileBean" class="java.io.File">
    <constructor-arg type="java.lang.String" 
                     value="$prop{file.path.property}" />    
  </bean>
java.io.File只有一个构造函数,只有一个字符串参数,所以我不确定为什么会有歧义。感谢您的帮助。

找到了解释发生了什么的方法。如果没有指定参数索引,spring将按类型匹配参数。在本例中,spring接受我的单字符串参数并将其传递给java.io.File构造函数,该构造函数接受两个字符串。这可以通过指定构造函数arg索引来修复

<bean id="fileBean" class="java.io.File">
  <constructor-arg index="0"
                   type="java.lang.String" 
                   value="$prop{file.path.property}" />    
</bean>

这里只有我的两分钱:我今天也有同样的问题。我有一个单元测试来检查Spring是否可以读取我的XML配置并生成所有必要的bean。它失败了,因为我编辑了错误的XML文件。我在编辑Ant构建的“dist”版本,而不是源代码管理的正确版本


经验教训:仔细阅读这些Spring异常消息(带有XML文件路径)

同样的情况也发生在我身上,例外情况出现在我正在编辑的另一个xml文件中
<bean id="fileBean" class="java.io.File">
  <constructor-arg index="0"
                   type="java.lang.String" 
                   value="$prop{file.path.property}" />    
</bean>