【发布时间】:2018-11-21 20:38:04
【问题描述】:
案例一:
char c='A'+'A';
System.out.println(c); // print question mark (?)
案例2:
char c1='A';
char c2='A'+c1; // Compile time error
System.out.println(c2);
如果我有逻辑当我添加两个 char 文字时,ascii 值的总和正在打印,这相当于问号的 ascii 值。 但在 case2 为什么编译时错误显示'无法从 int 转换为 char'
如果 char+char=int 则此规则必须适用于两种情况。
【问题讨论】:
-
这个问题适用于所有需要在运行时进行缩小转换的整数类型。 (而且,这是唯一有意义的方法,因为将 UTF-16 代码单元添加到 UTF-16 代码单元的含义是什么?)