[英]Java declaring a String array in method invocation
我試圖在方法調用中聲明一個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[])
任何人都可以幫助解決方案?
非常感謝
數組不是Collection
的子類型。 例如,在將其傳遞給containsAll
之前將其轉換為List
:
.containsAll(Arrays.asList(new String[] {"mailto", "subject", "text"}))
甚至更簡單,因為asList
將vararg作為參數:
.containsAll(Arrays.asList("mailto", "subject", "text"))
包含全部接受集合。
來自文檔 :
containsAll(Collection<?> c)
試試這個內容:
if (emailYaml.keySet().containsAll(Arrays.asList("mailto","subject","text"))
containsAll()
需要一個Collection
並且你傳遞一個數組,因此你的編譯器會抱怨。
if (emailYaml.keySet().containsAll(Arrays.asList(new String[]
{"mailto","subject","text"})))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.