既然是参数,一定与方法有关
1、可变长参数形式:类型名...
可传递0~N个参数,都会执行方法
public class Test {
public static void m1(int... a)//a为一个可变长参数
{
System.out.println("Test");
}
public static void main(String[] args) {
m1();
m1(1);
m1(1,3,5,7,9);//m1方法在调用的时候,传递的参数可以是0~N个
}
}
2、当能找到可以精确匹配的方法时,则调用该方法,而不会去执行可变长参数的那个方法
public class Test {
public static void m1(int... a)//a为一个可变长参数
{
System.out.println("Test");
}
public static void m1(int i)
{
System.out.println(i);
}
public static void main(String[] args) {
m1();
m1(1);//执行精确匹配的方法
m1(1,3,5,7,9);
}
}
3、可变长参数可以等同看做数组
package helloworld;
public class Test {
public static void m1(String... str)
{
for(int i=0;i<str.length;i++)
System.out.println(str[i]);
}
public static void main(String[] args) {
m1("你好","谢谢","再见","对不起");
String[] s= {"love","you","me"};
m1(s);
}
}
package helloworld;
import java.util.Date;
public class Test {
public static void m1(Class... str) throws Exception//a为一个可变长参数
{
for(int i=0;i<str.length;i++)
{
System.out.println(str[i]);
System.out.println(str[i].newInstance());//调用无参数构造方法
}
}
public static void main(String[] args) throws Exception{
m1(Date.class,Employee.class);
}
}
class Employee{
Employee()
{
System.out.println("执行Employee的无参数构造方法");
}
}
4、可变长参数只能出现一次,且只能出现在所有参数的最后一位
public static void m1(int i,int a,String... str)