比较 String[] 和像 String[] 一样访问的可变参数的内容相等性?

Compare String[] and varargs accessed like String[] for content equality?

定义为 String...的可变参数可以像 String[] 一样访问。

但是 equals 方法 returns 在比较 2 个字符串数组时为 false,一个作为可变参数传递,另一个作为 String[]。

有没有直接的方法来测试两个数组中内容的相等性?例如使用 Arrays.equals 方法。

举个例子:

public String[] getParams() {
    return params;
}

public void testForEquality(String... param) {
    if (Arrays.equals(getParams(), param)) {
         // do something
    }        
}

我做了一个小测试,我认为你遗漏了一些东西,因此我的测试按预期通过了。

private String[] params = {"1", "2", "3"};

public String[] getParams() {
    return params;
}

public boolean testForEquality(String... param) {
    return Arrays.equals(getParams(), param);
}    

然后测试是:

System.out.println(testForEquality("1", "2", "3"));
System.out.println(testForEquality("-1", "2", "3"));
System.out.println();
System.out.println(testForEquality(new String[] {"1", "2", "3"}));
System.out.println(testForEquality(new String[] {"2", "3"}));

然后输出:

true
false

true
false