java5.0以後才有的可變參數的方法,形式如下:
方法名(數據類型 ...數據的引用名) ,數據類型可以為 自定義的類和原始類型, 以及某些系統自帶類(例如:String ),
現在我們聲明一個自定義的用戶類
Java代碼
package lyx.com.cn;
@SuppressWarnings("serial")
public class User implements java.io.Serializable{
public int age;
public String name;
public User(String name ,int age) {
this.name = name;
this.age = age;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
現在我們建立一個測試類
Java代碼
package lyx.com.cn;
/**
* @author 李亞希
* 天豪工作室
* 2009-9-5
*/
public class TestCanArgs {
public TestCanArgs() {
}
//自定義的User類
public static void outInfo(User...us)
{
for(User u:us)
{
System.out.println(u.getName()+"\t"+u.getAge());
}
}
/*
* 整型數據原始類型
* 這裡暫時不考慮jdk5.0以後才有的自動裝箱和拆箱
*/
public static void outInfo(int...ints) {
for(int i:ints)
{
System.out.println(i);
}
}
//String 類型
public static void outInfo( String...strings )
{
for(String str:strings)
{
System.out.println(str);
}
}
public static void main(String[] args)
{
outInfo( "liyaxi" ,"haoren");
System.out.println("*************************");
outInfo( "liyaxi" ,"haoren" , "tianhao");
System.out.println("*************************");
User u = new User("張三 ", 26);
User u2 = new User("李四", 25);
User u3 = new User("王五", 24);
User[] us=new User[3];
us[0]=u;
us[1]=u2;
us[2]=u3;
outInfo(us);
System.out.println("*************************");
int[] intArray= new int[]{2,3,4,5};
outInfo(intArray);
}
}
輸出結果為:
liyaxi
haoren
*************************
liyaxi
haoren
tianhao
*************************
張三 26
李四 25
王五 24
*************************
2
3
4
5
可見可變參數方法的實質是傳遞參數類型的一個可變長度的數組 ,且可變參數必須為方法參數的最後一個參數(The variable argument type (這裡是所傳遞的參數類型 , 例如:String)of the method outinfo2 must be the last parameter);而且一個方法只能有且僅只能有一個可變參數的參數