我已閱讀,在方法重載,優先進入的事實:多參數重載函數
精確匹配>拓寬>裝箱/拆箱>可變參數
這偉大工程只有一個參數的函數。但是對於有多個參數的函數,有時會給出奇怪的結果,大概是因爲我無法正確應用這個規則。
例如:
代碼1:
public static void overloadResolve(long i,int j){} //1
public static void overloadResolve(int i,Integer o){} //2
overloadResolve(5,6); // calls 1
代碼2:
public static void overloadResolve(int i,int... j){} //1
public static void overloadResolve(Integer i,long o){} //2
overloadResolve(5,6); // calls 2
你能解釋一下如何在超載的情況下處理多個參數的函數?
公共靜態無效overloadResolve(長我,詮釋... j)的 { } 公共靜態無效overloadResolve(INT I,對象o){ } – user2653926 2014-10-30 08:26:49
這個怎麼樣 – user2653926 2014-10-30 08:27:38
@ user2653926可變參數總是有最低的優先順序,所以第二個會被選中 – Eran 2014-10-30 08:29:58