NIN*_*OOP 5 java spring constructor-injection
这是代码:
public class Triangle {
private String color;
private int height;
public Triangle(String color,int height){
this.color = color;
this.height = height;
}
public Triangle(int height ,String color){
this.color = color;
this.height = height;
}
public void draw() {
System.out.println("Triangle is drawn , +
"color:"+color+" ,height:"+height);
}
}
Run Code Online (Sandbox Code Playgroud)
Spring配置文件是:
<bean id="triangle" class="org.tester.Triangle">
<constructor-arg value="20" />
<constructor-arg value="10" />
</bean>
Run Code Online (Sandbox Code Playgroud)
是否有任何特定规则来确定 Spring 将调用哪个构造函数?
这里,第一个参数将与每个方法的第一个参数匹配,然后参数将被匹配。
\n\n我建议使用下面的解决方案来帮助消除歧义
\n\n如果你想调用你的第一个构造函数,请使用
\n\n<bean id="triangle" class="org.tester.Triangle">\n<constructor-arg type="int" \xc2\xa0value="20" />\n<constructor-arg type="java.lang.String" \xc2\xa0value="10" />\n</bean>\nRun Code Online (Sandbox Code Playgroud)\n\n如果你想调用第二个构造函数,请使用
\n\n<bean id="triangle" class="org.tester.Triangle">\n <constructor-arg type="java.lang.String"value="20" />\n <constructor-arg type="int" value="10" />\n</bean>\nRun Code Online (Sandbox Code Playgroud)\n\n这样就解决了歧义
\n\n编辑 :-
\n\n请在此处阅读有关此问题的更多信息。
\n我不相信是这样。请注意,您可以键入参数,例如:
<bean id="triangle" class="org.tester.Triangle">
<constructor-arg type="int" value="20" />
<constructor-arg value="10" />
</bean>
Run Code Online (Sandbox Code Playgroud)
这将消除这种情况下的混乱。
| 归档时间: |
|
| 查看次数: |
3975 次 |
| 最近记录: |