日期:2014-05-20  浏览次数:20671 次

可变参数的问题
public transient Method getMethod(String s, Class aclass[]){......}

这个getMethod方法.第二个参数用Eclipse提示的时候显示第二个参数是可变参数.
可是我用jad点进去看源码的时候,怎么却看见了上面那种定义方式.他定义的明明是一个数组,
为什么我写好几个参数也就是这样 getMethod("", String.class, String.class);都不出错.为什么?

------解决方案--------------------
语法糖。

为了调用时传递参数方便。
------解决方案--------------------
探讨
public transient Method getMethod(String s, Class aclass[]){......}

这个getMethod方法.第二个参数用Eclipse提示的时候显示第二个参数是可变参数.
可是我用jad点进去看源码的时候,怎么却看见了上面那种定义方式.他定义的明明是一个数组,
为什么我写好几个参数也就是这样 getMethod("", String……

------解决方案--------------------
可变参数就是意味着是 形参 一个可变的数组,你需要几个参数,就可以传几个
没有数目限制,很方便
------解决方案--------------------
这是为了兼容旧版本,jdk1.5之前都没有可变参数,用的往往是数组。。。1.5之后很多改用了可变参数,但可变参数只能放在参数列表的最后一个位置。。。
------解决方案--------------------
这个
,,刚看了一会,,不甚了解,,
------解决方案--------------------
可变参数不就是数组么,getMethod(String s, Class... aclass){}和getMethod(String s, Class[] aclass){}都一样,使用的时候getMethod("",String.class,Integer.class);和getMethod("",new Class[]{String.class,Integer.class});都一样,推荐遇见可变参数时使用后一种方法。