
一. 什么是参数列表
当你在编写一个函数时,你不知道函数形参的类型或者是形参的长度时,你就可以使用参数列表来代替。
样式:
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类型
但是注意包装类和普通类型同时存在将会有二义性