Java定义方法可变参数
众所周知, Java可以通过... 来给一个方法定义一个可变长度的参数.
例如
// 返回可变参数的个数
public void method(int ... i){
System.out.println(i.length);
}
其中注意点一共有两个
- 只能设定一个可变参数, 并且这个参数必须在最后
//Vararg parameter must be the last in the list
public void method(int... i, String str){
System.out.println(i.length);
}
//Vararg parameter must be the last in the list
public void method(int... i, String... str){
System.out.println(i.length);
}
以上两种都是错误的使用方式
- 调用的时候, 可以省略这个可变参数. 也就是说, 可以设定最后一个参数的个数为0.
public void test(String str, int... i){
System.out.println(str);
}
public static void main(String[] args) {
System.out.println();
//no error
new Sample().test("hello");
}
顺便说一下, 一个对象即使调用了这个方法, 在调用时个数也是模糊的.
public void test(String str, int... i){
System.out.println(str);
}
public static void main(String[] args) {
System.out.println();
Sample sample = new Sample();
sample.test("as",new int[]{1,2});
sample.test("as",new int[]{1,2,3});
}