可变长参数
-
可变长参数只能在形参列表的最后一个,且只能出现一次。
-
代码实例
import java.util.Date;
public class 可变长参数 {
public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException {
//m1方法传入的实参可以是0~n个,如果有参数精确匹配的方法,那么会去调用精确匹配的,就不会调用可变长参数了
m1();
m1(1);
m1(2,3);
m1(1,2,3,4,5); //m2方法是一个字符串类型的可变长参数 ,可以给可变长参数传入一个字符串数组
String [] strs={"13点46分","4.9","星期五"};
m2(strs); //调用m3方法
Class c1=Class.forName("java.util.Date");
Class c2=Class.forName("com.shige.Reflect.Employee"); m3(c1,c2); }//m1方法种有一个int可变长参数 可变长参数只能在形参列表的最后一个,且只能出现一次。
public static void m1(int…a){
System.out.println(a);
}
public static void m1(int a){
System.out.println(a);
} public static void m1(int a,int b){
System.out.println(a);
}//m2 方法 是一个字符串类型的可变长参数
public static void m2(String…strs){
//可变长参数也有length属性
for (int i = 0; i < strs.length; i++) {
System.out.print(strs[i]+” “);
}
}//m3 方法是一个Class类型的可变长参数
public static void m3(Class…args) throws IllegalAccessException, InstantiationException {
for (int i = 0; i <args.length ; i++) {
Class c=args[i];
System.out.println(c.newInstance()); //调用无参数构造方法
}
}
}