当前位置: 代码迷 >> J2SE >> 【新手学java】关于方法的可变参数和forecah的用法解决方法
  详细解决方案

【新手学java】关于方法的可变参数和forecah的用法解决方法

热度:129   发布时间:2016-04-24 01:25:24.0
【新手学java】关于方法的可变参数和forecah的用法
直接上代码,
Java code
//newDemo1.java//关于方法可变参数和数组输出方法foreach的练习public class newDemo1{    public static void main(String args[])    {        System.out.print("不传递阐述(fun()):");        fun();        System.out.print("\n传递1个参数(fun(1)):");        fun(1);        System.out.print("\n传递5个参数(fun(1,2,3,4,5)):");        fun(1,2,3,4,5);        useForEach();    }            public static void fun(int...arg)   //这里为什么定义为int...arg[]之后,编译出错误!    {        for(int i:arg)                    //使用foreach输出            System.out.print(i+" ");    }/*        public static void fun(int...arg)   //没有定义为数组,为什么下面还能有arg[i]    {        for(int i=0;i<arg.length;i++)     //不使用foreach输出            System.out.print(arg[i]+" ");    }*/        public static void useForEach()    {        int x[]={1,2,3,4,5,6,7,8,9};      //如果上面正确的话,这儿应该作何解释?        System.out.println("\n参照");            for(int i:x)            System.out.print(i+" ");    }}


------解决方案--------------------
这里为什么定义为int...arg[]之后,编译出错误!

参数中int...arg就表示一个1维数组,不能通过这种方式定义二维数组
------解决方案--------------------
arg本身就是数组,所以不需要写[],也能直接用arg[i]

 int x[]={1,2,3,4,5,6,7,8,9};
只是 int[] x = {1,2,3,4,5,6,7,8,9}; 的一种变通写法

只有在声明的时候能这样变通
  相关解决方案