我有相關的下面的代碼片段一個問題:Java的問題與VAR-指定參數和拳擊
class VarArgsTricky {
static void wide_vararg(long... x) {
System.out.println("long...");
}
static void wide_vararg(Integer... x) {
System.out.println("Integer...");
}
public static void main(String[] args) {
int i = 5;
wide_vararg(i, i, i); // needs to widen and use var-args
Long l = 9000000000l;
wide_vararg(l, l); // prints sucessfully "long..."
}
}
到wide_vararg第一次調用編譯失敗(他說,該方法是ambigous),而第二編譯剛精細。
對此行爲的任何解釋? 謝謝!
如果這不僅僅是一個關於重載的實驗,請閱讀Effective Java SE:項目41明智地使用重載。 – TJR
這純粹是一個實驗,只是爲了解決OCPJP認證考試的潛在問題。 –