1. 程式人生 > >Java8中方法的可變長度引數

Java8中方法的可變長度引數

從java5開始就加入了可變長度引數。

	void add(int ...i) {
		for(int x:i) {
		    System.out.print(x + ",");	
		}
		System.out.println();
	}

用“...”來表示可變長度引數,在可變長度引數前,可以有普通的常規引數,但可變長度引數必須放在方法的最後。

	void add(String str,boolean bl,int ...i) {
		for(int x:i) {
		    System.out.print(x + ",");	
		}
		System.out.println();
	}

一個方法中,只能有一個可變長度引數,呼叫方法時,可變長度引數可以為空,下面的程式碼呼叫上面的方法,依然可以正確執行。

	@Test
	void test() {
		add();
	}

可變長度引數方法可以過載,也能在過載里加入普通的常規引數。

	void add(int ...i) {
		for(int x:i) {
		    System.out.print(x + ",");	
		}
		System.out.println();
	}
	
	void add(String str,boolean ...i) {
		for(boolean x:i) {
		    System.out.print(x + ",");	
		}
		System.out.println();
	}

如果在過載中有幾個不同型別的可變長度引數,將無法執行可變長度引數為空的,按照以下程式碼執行上面的程式碼將會報錯Error:Ambiguous!

	@Test
	void test() {
		add(1,2);
		add(true,true,false);
    	        add();
	}