我正面臨著一個問題,它產生了一個不完全符合規范的輸出。我讀到,在建構式不明確的情況下,第一個建構式會被呼叫。但我現在面臨的是一個完全不同的問題。
我的類 -
public class Addition {
private int a;
private int b。
public Addition() {
super()。
// TODO 自動生成的建構式存根。
}
public Addition(int a, int b) {
super()。
this.a = a;
this.b=b;
System.out.println("Constructor : int, int")。
}
public Addition(double a, double b) {
super()。
this.a=(int)a。
this.b=(int)b。
System.out.println("建構式 : double, double")。
}
public void doSum() {
System.out.println("Sum is -> " (this.a this.b) )。)
}
@Override[/span
public String toString() {
return "Addition [a="/span> a ", b="/span> b "]"。
}
}
XML檔案 -
<bean class="com.spring.Addition" name=" addition1">
<建構式-arg>
<value>12</value>
</constructor-arg>
<建構式-arg>
<value>34</value>
</constructor-arg>
</bean>
主代碼 -
Addition addition = (Addition)applicationContext.getBean("addition1") 。
System.out.println(addition)。
輸出-
構造器 : double, double.
加法 [a=12, b=34]
我唯一擔心的是,既然(int,int)建構式定義在(double,double)建構式之前,為什么第二個建構式會在這里被呼叫?
uj5u.com熱心網友回復:
你可以通過type屬性為建構式指定準確的資料型別來避免這種模糊性,如下所示:
<bean class="com. spring.Addition" name="addition1">
<constructor-arg type="int">/span>
<value>12</value>/span>
</constructor-arg>/span>
<constructor-arg type="int">/span>
<value>34</value>/span>
</constructor-arg>/span>
</bean>
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/331546.html
標籤:
