java 可变参数 String... 用法

public static void main(String[] args) {
		System.out.println("test1:");
		test("a","b","c");
		System.out.println("test2:");
		test(new String[] {"a", "b", "c"});
	}
	
    /**
     * 测试方法
     * @param params 参数
     * */
    public static void test(String... params){
        //遍历参数内容
        for(String temp : params){
            System.out.println(temp);
        }
        System.out.println();
    }

输入结果

从控制台结果可以看到,对于数组和同类型多入参都会解析为数组进行处理,那么如果不同类型多入参呢?继续看一下

  定义这中类型的入参必须放到最后一个才可以,也就是说int入参需要放到可变入参的前面,同时再test1处增加一个String进行测试,看一下代码。

public static void main(String[] args) {
		System.out.println("test1:");
		test(1,"a","b","c","d");
		System.out.println("test2:");
		test(2,new String[] {"a", "b", "c"});
	}
	
    /**
     * 测试方法
     * @param params 参数
     * */
    public static void test(int intParam,String... params){
    	System.out.println("int:"+intParam);
        //遍历参数内容
        for(String temp : params){
            System.out.println(temp);
        }
        System.out.println();
    }

执行结果:

  那么可不可以使用多个可变参数作为入参呢?答案是不可以的,原因跟上一个错误差不多,这种可变参数需要放到最后一个入参,多个可变参数,不可能都最为最后一个入参。相较于String[]这种形式的入参,我理解的优势大概就是可以多个String传入,也可以Sting[]传入,就是test1的调用入参这样。

猜你喜欢

转载自blog.csdn.net/a290450134/article/details/82050625