java5中的可变参数

来源:互联网 发布:心动网络股份有限公司 编辑:程序博客网 时间:2024/06/12 01:43

 可变参数:
1、可变参数必须是最后一个参数。
2、可以把可变参数当成数组来使用。
3、如果可变形参数类型是对象类型的,实参基本类型的数组的时候,基本类型的数组会被看做一个对象来处理。

例1:

public class VariableParameter{     public int getResult(int ...num)         { int sum=0;            for(int i=0;i<num.length;i++)             {               sum+=num[i];                     }        return sum;      }      public boolean stopable(int x,int ...args)     {                int sum=0;                for(int e : args)                 {                    sum+=e;                 }              if(sum>=x)                   return true;         else              return false;      }    public static void main(String[] args)        {                   VariableParameter vp=new VariableParameter();               System.out.println(vp.getResult(1,2,3,4));            System.out.println(vp.getResult(new int[]{1,2,3,4,5,6}));            int[] a=new int[]{6000,800,200,600,400,99,100,800,1000};            System.out.println(vp.stopable(10000,a));      }}

例2:

class VPEFather{ // overload    public void display(String... args)    {        for (String s : args)            System.out.print(s + " ");        System.out.println("father不确定参数。。。");    }    public void display(String s) // 参数不能改成String[] s    {        System.out.println(s);        System.out.println("father字符串。。");    }}public class VariableParaExtends extends VPEFather{    // override    public void display(String[] strs)// 不能以String[] strs覆盖(会有一个警告)    {        for (String s : strs)            System.out.print(s + " ");        System.out.println("son不确定参数。。");    }    public static void main(String[] args)    {        String[] ss = new String[] { "apple", "pear", "banana" };        VPEFather vpe = new VariableParaExtends();        vpe.display("hello");        vpe.display("aaa", "bbb", "ccc");    }}


例3:

public class VariableParameterDetail{    public static void display(String... strs)    {        for (String s : strs)            System.out.println(s);    }    public static void display(Object... nums)    {        for (Object num : nums)            System.out.println(num);    }    public static void main(String[] args)    {        String[] ss = new String[] { "aa", "bb", "cc" };        int[] nums = new int[] { 1, 2, 3 };        Integer[] nums2 = new Integer[] { 1, 2, 3 };        VariableParameterDetail.display(ss);        VariableParameterDetail.display(nums);// nums会被当成一个对象        System.out.println(nums2 instanceof Object);    }}



 


 

原创粉丝点击