我正在尋找將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
?
作爲後續答案。 (謝謝btw)我認爲我的意思是一個簡單的例子,爲什麼第一行隱式投射,但第二行不是?
Character [] characterArray = {'s','t','r','i','n','g'}; // works
Character [] characterArray2 = myString.toCharArray(); // does not work
我的理解是兩個右手邊做character[]
variabless
簡而言之:從「原始類型數組」到「包裝類型數組」沒有自動裝箱。 – Tom
你的意思是'myString.toCharArray()'與'{'s','t','r','i','n','g'}'是不同的類型。 –
閱讀@kocko關於這種情況的評論。 – Tom