Sto cercando di convertire un array di char
in un Set
di Personaggi.Perché il casting implicito non si verifica qui?
Logicamente se scrivessi qualcosa come How to convert an Array to a Set in Java invece di usare le funzioni integrate funzionerebbe. Tuttavia, utilizzando le funzioni integrate con i generici, ciò non avviene.
TreeSet<Character> characterSet = Sets.newTreeSet();
String myString = "string";
Character [] characterArray = {'s','t','r','i','n','g'};
Collections.addAll(characterSet,characterArray); // This works
Collections.addAll(characterSet,myString.toCharArray()); // This Does not
Perché non gettati serie di char
a characters
?
Come seguito di una risposta. (Grazie) Penso che un semplice esempio di cosa intendo sia: perché la prima riga è implicitamente lanciata, ma la seconda riga no?
Character [] characterArray = {'s','t','r','i','n','g'}; // works
Character [] characterArray2 = myString.toCharArray(); // does not work
mia comprensione è entrambi i lati destro fare character[]
variabless
Per farla breve: non c'è autoboxing da "primitive type array" a "wrapper type array". – Tom
Significa che 'myString.toCharArray()' non è dello stesso tipo di '{'s', 't', 'r', 'i', 'n', 'g'}'? –
Leggi cosa ha scritto @kocko su quel caso. – Tom