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));
}
addAllprend 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.