首页 > 编程语言 > 详细

可变参数与数组

时间:2019-02-20 12:03:11      阅读:181      评论:0      收藏:0      [点我收藏+]
初学时,不知道这 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) {
		// 编译报错,可变参数类型应该作为参数列表的最后一项
 
	}

}

  

 

 

可变参数与数组

原文:https://www.cnblogs.com/xinxin-ting/p/10405615.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!