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) { // 编译报错,可变参数类型应该做为参数列表的最后一项 } }