A programmer needs to create a logging method that can accept an
arbitrary number of arguments. For example, it may be called in these
ways:
logIt("log message 1 ");
logIt("log message2”,”log message3");
Copyright Tarena Corporation,2008.All rights reserved
logIt("log message4", "log message5", "log message6");
Which declaration satisfies this requirement?
A. public void logIt(String * msgs)
B. public void logIt(String [] msgs)
C. public void logIt(String... msgs)
D. public void logIt(String msg1, String msg2, String msg3)

解决方案 »

  1.   

    选C。
    变参函数是为了迎合C程序员在JDK5新增的特性。
      

  2.   

    C,可变参数相当于一个数组,只不过是不定长的。
    使用可变参数需要注意一个问题,如果可变参数跟普通参数放在一起的话,可变参数必须放到最后。
    public void test(Integer id, String... args)// 正确
    public void test(String... args, Integer id)//错误
      

  3.   

    看一看java入门书上的Helloword 的main方法的参数。
      

  4.   

    C
    这是JDK1.5增加的新特性,vararg(动态参数),"..."就表示动态参数。其实最终原理还是我们用到的把参数打包成数组传入,只不过这个由JVM帮我们处理了...
      

  5.   

    b里面的String [] msgs不也没定长度吗