Java在方法调用中声明String数组

时间:2013-02-21 15:47:03

标签: java string methods

我正在尝试在方法调用中声明一个String数组,如下所示:

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[])

有人可以帮忙解决方案吗?

非常感谢

3 个答案:

答案 0 :(得分:4)

数组不是Collection的子类型。例如,在将其传递给List之前将其转换为containsAll

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

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

.containsAll(Arrays.asList("mailto", "subject", "text"))

答案 1 :(得分:0)

包含all接受集合。

来自docs

containsAll(Collection<?> c) 

试试这个内容:

if (emailYaml.keySet().containsAll(Arrays.asList("mailto","subject","text"))

答案 2 :(得分:0)

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

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