我正在尝试在方法调用中声明一个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[])
有人可以帮忙解决方案吗?
非常感谢
答案 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"})))