可变参数与数组

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

时间: 2024-10-30 10:09:14

可变参数与数组的相关文章

Java基础学习191221(可变参数,数组,Array类,稀疏数组,继承重写多态,抽象类,接口)

Java基础学习 可变参数 在方法声明中,在指定参数类型后加一个省略号(...). 一个方法中只能指定一个可变参数,它必须是方法的最后一个参数.任何普通参数都必须在它之前声明. public class printMax { public static void main(String[] args) { printMax(1,5,8,78,415,15); } public static void printMax( double... numbers){ if (numbers.length

数组与可变参数

定义一个函数时,如果我们不确定无法确定参数的个数,那么就需要使用到可变参数,可变参数就是可以接收数量不确定的多个参数值. 在JDK 1.5之前都是通过数组来解决参数不确定问题.其实可变参数本质上就是一个数组,可以通过数组的下标来反问可变参数的元素. 1.将可变参数赋值给数组类型对象 由于可变参数也是数组,因此,可以直接将可变参数对象赋值给数组类型对象. 2.可变参数值的遍历: 由于可变参数就是一个数组,只是写法与数组不一样.当需要访问可变参数值时,可以像访问一个数组一样访问,以及可以使用数组对象

[Java5新特性]可变参数

什么是可变参数 Java基础内容中,关于函数具有一种特性:重载,如果我们要完成多个数字想加的需求,可以按照以下代码完成: public class Demo { public int add(int a, int b) { return a + b; } public int add(int a, int b, int c) { return a + b + c; } public static void main(String[] args) { int sum1 = new Demo().a

Java之可变参数

Java中支持可变参数 意思就是:参数的个数可以根据需要写,你可以写1个.2个.3个....他们都被保存到一个参数的数组中. 但是这些参有一些约束:他们必须是同类型的,比如都是String字符串类型. 同时,可变参数的函数中的参数的写法也有约束:比如,可变参数的数组必须写在参数的最后,否则程序不知道你的参数到底有多少个. 例子:输出可变参数中的参数值 public class VariableArgument {    public static void main(String[] args)

可变参数:参数可变

可变参数:参数可变. 格式:方法名(参数类型… 参数名) 当使用可变参数定义函数时,函数在调用时,可以一次传入该类型的多个实际参数. 可变参数的定义会在执行时将这些实际参数组织成数组,可变参数的参数名就是数组名. 可变参数与数组类型不能重载,因为二者本质上是一样的 可变参数必须放在最后

java可变参数

Java1.5增加了新特性:可变参数:适用于参数个数不确定,类型确定的情况,java把可变参数当做数组处理.注意:可变参数必须位于最后一项.当可变参数个数多余一个时,必将有一个不是最后一项,所以只支持有一个可变参数.因为参数个数不定,所以当其后边还有相同类型参数时,java无法区分传入的参数属于前一个可变参数还是后边的参数,所以只能让可变参数位于最后一项. 可变参数的特点: (1)只能出现在参数列表的最后: (2)...位于变量类型和变量名之间,前后有无空格都可以: (3)调用可变参数的方法时,

Java中的可变参数

Java1.5增加了新特性:可变参数:适用于参数个数不确定,类型确定的情况,java把可变参数当做数组处理. 特点: 1.只能出现在参数列表最后: 2.省略号(...)位于变量类型和变量名之间,前后有无空格都可以 3.调用可变参数的方法时,编译器为该可变参数隐含创建一个数组, 在方法体中以数组的形式访问可变参数 程序举例说明: public class Test { //求传入参数的和的方法 public void add(int x,int...arr)//可变参数 { int sum=x;/

18、Java中可变参数

从JDK 1.5之后,Java允许定义形参可变的参数 例如: public void test(int a,String ... books){ for(String book:books){ System.out.println(book) } } 调用: test(1,"JAVA疯狂讲义","零基础javascript"); 这里的books就是一个可变参数,可以当做一个数组使用 注意: 1:可变参数必须是最后一个参数 2:一个方法中最多只能定义一个可变参数 和

集合框架-可变参数

Java1.5增加了新特性:可变参数:适用于参数个数不确定,类型确定的情况,java把可变参数当做数组处理. 可变参数用于简化书写, 注意:只能定义在参数列表的最后. package cn.itcast.p6.param;   public class ParamDemo {     public static void main(String[] args) {               int[] arr = {3,1,56,7};         add(arr);         ad