我正在寻找将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