隐式类型转换不应该从char到String.这怎么可能 ?

geo*_*van 3 java string type-conversion char

从char转换为String应导致以下错误:此代码:

char [] arr = {'H', 'e', 'l', 'l', 'o'};
        String c = arr[1]; 
Run Code Online (Sandbox Code Playgroud)

错误:类型不匹配:无法从char转换为String

这段代码:

char [] arr = {'H', 'e', 'l', 'l', 'o'};
String c = "";
for(char i : arr) {
    c += i;
}
Run Code Online (Sandbox Code Playgroud)

作品.

rge*_*man 6

+=操作符一样,+运算符将在其中一个操作数为a 而另一个操作数不是时执行字符串转换String.

代码+=将使用字符串转换i从a 转换为a charString进行连接c,a String.

=根据JLS,第5.2节,代码不会使用字符串转换,因为它不在分配上下文的可接受转换列表中.