可變參數與數組

初學時,不知道這 3個點  是什麼意思,後來才知道 這是可變參數。 也能夠理解成是數組。
public static String handleSrc(String... srcArr) throws Exception {
    String exportBaseSrc = System.getProperty("user.home");
    File file = new File(exportBaseSrc);
    if (!file.exists()) {
        throw new Exception("未找到根目錄異常");
    }
    String src = exportBaseSrc;
    if (CheckUtils.isNotEmpty(srcArr)) {
        for (String typeStr : srcArr) {
            if (CheckUtils.isNotEmpty(typeStr)) {
                src += "/" + typeStr;
            }
        }
    }
    return src;
}

  下面說下,可變參數和數組做爲參數時的區別?java

1,可變參數,能夠是多個,或者沒有。好比:若是我調用上面那個方法:也能夠這樣,handleSre();參數什麼也不用寫數組

2,可變參數是兼容數組類參數的,可是數組類參數卻沒法兼容可變參數;實例:spa

說明:可變參數能夠兼容數組參數 
public class TestVarArgus {
	public static void dealArray(int... intArray) {
		for (int i : intArray)
			System.out.print(i + " ");
 
		System.out.println();
	}
 
	public static void main(String args[]) {
		int[] intArray = { 1, 2, 3 };
 
		dealArray(intArray);// 經過編譯,正常運行
     
	}
}
 說明:反過來就不行了。。。
public class TestVarArgus {
	public static void dealArray(int[] intArray) {
		for (int i : intArray)
			System.out.print(i + " ");
 
		System.out.println();
	}
 
	public static void main(String args[]) {
		dealArray(1, 2, 3);// 編譯錯誤
	}
}

3,若是一個方法有多個參數,可變參數應放到最後。好比:code

public class TestVarArgus {
	public static void dealArray(int count, int... intArray) {
            //編譯正確
	}
 
	public static void dealArray(int... intArray, int count) {
		// 編譯報錯,可變參數類型應該做爲參數列表的最後一項
 
	}

}
相關文章
相關標籤/搜索