package t0422;
public class VaragsTest {
String name;
int totalScore;
VaragsTest(String name,int... a){
this.name=name;
this.totalScore=this.getTotalScore(a);
}
// VaragsTest(String name,int[] a){
// this.name=name;
// this.totalScore=this.getTotalScore(a);
//
// }
int getTotalScore(int[] a){
int totalScore=0;
for(int vs:a){
totalScore+=vs;
}
return totalScore;
}
public static void main(String[] args) {
VaragsTest vt = new VaragsTest("张三",new int[]{1,2,3});
//VaragsTest vt = new VaragsTest("张三",1,2,3);
System.out.println(vt.name);
System.out.println(vt.totalScore);
}
}
总结:上例 function(String name,int ... a)的用法相当于function(String name,int[] a),不过在用可变参数的时候,可变参数必须是最后一个参数,如对上例进行修改后 function(int ... a,String name)将会报错“The variable argument type int of the method VaragsTest must be the last parameter”,因为程序可能会将本例中的String类型的参数也当成数组的一员,产生这样的一个歧义。