addAll (java.util.Collection<? extends java.lang.String>) in Set cannot be applied to (java.lang.String[])
4 Réponses :
Si vous ne souhaitez pas non plus modifier le Set
, vous pouvez utiliser Set.of
avec Java-9 + comme:
public void fields(String... s) { Collections.addAll(fields, s); }
ou bien vous pouvez utiliser Collections.addAll
comme dans:
public void fields(String... s) { this.fields = Set.of(s); }
Je pense que vous pouvez d'abord convertir votre tableau en liste. Peut-être quelque chose comme
this.fields.addAll(Arrays.asList(s));
Vous convertissez simplement array
en Set
comme code ci-dessous.
String [] array = new String[] {"one","two","three","four","five"}; Set<String> set = new HashSet<String>(Arrays.asList(array));
Si vous pouvez utiliser google Guava, le code suivant peut vous aider
public void fields1(String... s) { Sets.union(fields,Sets.newHashSet(s)).copyInto(fields); }
une autre méthode:
public void fields(String... s) { this.fields.addAll(Sets.newHashSet(s)); }
addAll
prend une collection, pas un tableau. Essayezthis.fields.addAll (Arrays.asList (s))
Le type de données de s varargs est un tableau de chaînes et vous souhaitez le collecter dans un hashset. C'est pourquoi vous voyez l'exception.