簡體   English   中英

Java在方法調用中聲明String數組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM