1

次のように、メソッド呼び出し内で 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[])

誰でも解決策を手伝ってもらえますか?

どうもありがとう

4

3 に答える 3

4

配列は のサブタイプではありませんCollectionListたとえば、に渡す前にに変換し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()は a を期待してCollectionおり、配列を渡しているため、コンパイラは文句を言います。

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