1

我试图在方法调用中声明一个字符串数组,如下所示:

if (emailYaml.keySet().containsAll(new String[]{"mailto","subject","text"}))

我不完全确定这是否是最好的方法(我对编程很陌生),但无论如何 Eclipse 告诉我:

The method containsAll(Collection<?>) in the type Set<String> is not applicable for the arguments (String[])

有人可以帮忙解决吗?

非常感谢

4

3 回答 3

4

数组不是Collection. 将其转换List为例如,然后将其传递给containsAll

.containsAll(Arrays.asList(new String[] {"mailto", "subject", "text"}))

甚至更简单,因为asList将 vararg 作为参数:

.containsAll(Arrays.asList("mailto", "subject", "text"))
于 2013-02-21T15:50:21.473 回答
0

包含所有接受的集合。

文档

containsAll(Collection<?> c) 

试试这个:

if (emailYaml.keySet().containsAll(Arrays.asList("mailto","subject","text"))
于 2013-02-21T15:48:44.727 回答
0

containsAll()期望 aCollection并且您正在传递一个数组,因此您的编译器会抱怨。

if (emailYaml.keySet().containsAll(Arrays.asList(new String[]
  {"mailto","subject","text"})))
于 2013-02-21T15:48:45.970 回答