zoukankan      html  css  js  c++  java
  • 可变参数与数组

    初学时,不知道这 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;
    }

      下面说下,可变参数和数组作为参数时的区别?

    1,可变参数,可以是多个,或者没有。比如:如果我调用上面那个方法:也可以这样,handleSre();参数什么也不用写

    2,可变参数是兼容数组类参数的,但是数组类参数却无法兼容可变参数;实例:

    说明:可变参数可以兼容数组参数 
    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,如果一个方法有多个参数,可变参数应放到最后。比如:

    public class TestVarArgus {
    	public static void dealArray(int count, int... intArray) {
                //编译正确
    	}
     
    	public static void dealArray(int... intArray, int count) {
    		// 编译报错,可变参数类型应该作为参数列表的最后一项
     
    	}
    
    }
    

      

     

  • 相关阅读:
    Shell 字符串
    shell 使用变量
    shell 数组
    shell 注释
    shell 输出双引号
    shell wc命令 统计行数
    shell :
    shell 函数调用
    pyqt 调用颜色选择器
    Navicat+Premium+12+破解补丁
  • 原文地址:https://www.cnblogs.com/xinxin-ting/p/10405615.html
Copyright © 2011-2022 走看看