有时我们可能会不确定要几个参数,或者有想在之后添加上新的参数,这时候我们如果还想之前一样的将参数一个个写死在上面就显得很麻烦。于是java很贴心的为我们提供了和c一样的可变参数列表。
简单的使用
class NewVarArgs3 {
static void printArray(int require, String... args){
/*System.out.println(args.getClass());*/
System.out.print(require+" ");
for (Object obj:args) {
System.out.print(obj+" ");
}
System.out.println("可变参数列表长度:"+args.length);
}
}
static void printIntArray(int... args){
for (int i:args) {
System.out.println(i);
}
}
}
public class Test {
public static void main(String[] args) {
NewVarArgs.printArray(new Integer(54),new Float(5.0),new Double(11.11));
NewVarArgs.printArray( new int[] {1,2,3,4,5});
NewVarArgs.printIntArray(new int[]{1,2,3,4,5});
}
}
运行结果
如果我们java没有提供,我们该如何写呢?
class NewVarArgs2 {
static void printArray(Object[] args){
/*System.out.println(args.getClass());*/
for (Object obj:args) {
System.out.print(obj+" ");
}
}
}
public class Test {
public static void main(String[] args) {
NewVarArgs2.printArray(new Object[]{new Integer(54),new Float(5.0),new Double(100.3)});
}
}
当然还可以与普通的参数一起使用
class NewVarArgs3 {
static void printArray(int require, String... args){
/*System.out.println(args.getClass());*/
System.out.print(require+" ");
for (Object obj:args) {
System.out.print(obj+" ");
}
System.out.println(args.length);
}
}
public class Test {
public static void main(String[] args) {
NewVarArgs3.printArray(1, "one");
NewVarArgs3.printArray(2,"two","one");
//没有任何的参数也可以
NewVarArgs3.printArray(3);
}
}