一. 什么是參數列表
當你在編寫一個函數時,你不知道函數形參的類型或者是形參的長度時,你就可以使用參數列表來代替。
樣式:
public void f(Object...objects) { System.out.println("Object"); System.out.println(objects.length); }
就是(類型...)在你所需要的參數類型后面加上三個點
二.參數列表的本質
參數列表的本質是一個長度不確定的數組。
比如說當你輸出形參時得到的是一個地址符,如下:
public void f(Integer...integers ) { System.out.println("integers"); System.out.println(integers); } public static void main(String[] args) { Parameter_list pl=new Parameter_list(); pl.f(new Integer(20),new Integer(20),20); }
三.object類型的形參列表
由於所有的類都是object的子類,所以所有的類的對象都可以為object形參列表的實參。
public void f(Object...objects) { System.out.println("Object"); System.out.println(objects.length); } public static void main(String[] args) { Parameter_list pl=new Parameter_list(); pl.f(20,30,51,30); }
輸出為:
同時上面的列子也有自動封箱的存在。
四.自動封箱與拆箱與形參列表
public void f(Integer...integers ) { System.out.println("integers"); } public static void main(String[] args) { Parameter_list pl=new Parameter_list(); pl.f(20,30,51,30);
實參(20,30,51,30)自動封箱為integer類型
但是注意包裝類和普通類型同時存在將會有二義性