Car*_*cas 10 java arrays generics
我期待的数组转换char为Set字符.
从逻辑上讲,如果我写出如何将数组转换为Java中的Set而不是使用内置函数,它将起作用.但是,使用带有泛型的内置函数则不然.
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
Run Code Online (Sandbox Code Playgroud)
为什么不把它投射char到characters?
作为后续答案.(谢谢你顺便说一句)我想我的意思是一个简单的例子,为什么第一行隐含地投,但第二行没有?
Character [] characterArray = {'s','t','r','i','n','g'}; // works
Character [] characterArray2 = myString.toCharArray(); // does not work
Run Code Online (Sandbox Code Playgroud)
我的理解是右手两方都做character[]变量
Kon*_*kov 12
因为myString.toCharArray()将返回char[]哪个不是Character[].您可以通过这个简单的测试来验证它:
char[] a = { 'a' };
Character[] b = { 'b' };
a = b; //doesn't work, because char[] is not a Character[]
Run Code Online (Sandbox Code Playgroud)
该Character[] characterArray = {'s','t','r','i','n','g'};然而符合Collections.addAll(...),因为当该阵列被初始化时,每个值是从autoboxed char到Character.
| 归档时间: |
|
| 查看次数: |
131 次 |
| 最近记录: |