Я ищу для преобразования массива char
в Set
символов.Почему здесь не подразумевается кастинг?
Логично, если бы я написал что-то вроде How to convert an Array to a Set in Java, вместо использования встроенных функций он работал бы. Однако использование встроенных функций с дженериками это не так.
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
Почему он не бросил массив char
в characters
?
В ответ на ответ. (Спасибо, кстати, я думаю, что простой пример того, что я имею в виду, - это почему первая строка неявно бросает, а вторая - нет?
Character [] characterArray = {'s','t','r','i','n','g'}; // works
Character [] characterArray2 = myString.toCharArray(); // does not work
Мое понимание обоих правых частей делают character[]
variabless
Чтобы сделать его коротким: autoboxing от "примитивного массива типов" до "массива типа оболочки" отсутствует. – Tom
Вы имеете в виду 'myString.toCharArray()' не такой же тип, как '{'s', 't', 'r', 'i', 'n', 'g'}'? –
Прочитайте, что @kocko написал об этом случае. – Tom