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) { // 編譯報錯,可變參數類型應該做爲參數列表的最後一項 } }