可变长参数
-
可变长参数只能在形参列表的最后一个,且只能出现一次。
-
代码实例
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()); //调用无参数构造方法
}}
}