可变参数的应用

来源:互联网 发布:淘宝双11如何报名 编辑:程序博客网 时间:2024/04/18 12:36

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类型的参数也当成数组的一员,产生这样的一个歧义。