gpt4 book ai didi

java - 为什么这里不进行隐式转换?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:15:00 24 4
gpt4 key购买 nike

我希望将 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[]变量

最佳答案

因为 myString.toCharArray() 将返回 char[] 而不是 Character[]。您可以通过这个简单的测试来验证它:

char[] a = { 'a' };
Character[] b = { 'b' };
a = b; //doesn't work, because char[] is not a Character[]

不过 Character[] characterArray = {'s','t','r','i','n','g'}; 符合 Collections .addAll(...),因为在初始化数组时,每个值都会从 char 自动装箱到 Character

关于java - 为什么这里不进行隐式转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29796517/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com