/**
 * Testing Arrays
 * @author N002213F
 * @version 1.0
 */
public class JavaArrays {

    public void processNames(String[] arg) {
        //-- patented method, stop, do not read ;)
    }

    public void test() {

        // works fine
        String[] names1 = new String[] { "Jane", "John" };
        processNames(names1);

        // works fine, nothing here
        String[] names2 = { "Jane", "John" };
        processNames(names2);

        // works again, please procced
        processNames(new String[] { "Jane", "John" });

        // fails, why, are there any reasons?
        processNames({ "Jane", "John" });

        // fails, but i thought Java 5 [vargs][1] handles this
        processNames("Jane", "John");
    }
}

最佳答案

processNames({ "Jane", "John" });

  
  这失败了,为什么,有什么原因吗?


您没有指定类型。 Java在这里不进行类型推断。它希望您指定这是一个字符串数组。 this question的答案也可能对此有所帮助


processNames("Jane", "John");

  
  这也失败了,但是我认为Java 5 varargs可以解决这个问题


如果需要varargs,则应这样编写方法:

public void processNames(String... arg)


请注意...而不是[]。仅接受数组并不能使您有权在该方法上使用varargs。

08-25 14:25
查看更多