java5.0以后才有的可变参数的方法

java5.0以后才有的可变参数的方法,形式如下:
  方法名(数据类型 ...数据的引用名) ,数据类型可以为 自定义的类和原始类型, 以及某些系统自带类(例如:String ),
现在我们声明一个自定义的用户类
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;
	}
} 

现在我们建立一个测试类
 
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);而且一个方法只能有且仅只能有一个可变参数的参数




你可能感兴趣的:(工作)