我在玩的时候遇到了一些我觉得很奇怪的东西:
以下不是有效的 Java 代码:
char x = 'A';
x = x + 1; //possible loss of precision
因为其中一个操作数是整数,所以另一个操作数被转换为整数。结果无法分配给字符变量... while
char x = 'A';
x += 1;
是有效的,因为生成的整数会自动转换为字符。
到目前为止一切顺利。这对我来说似乎很清楚,但是......为什么以下有效的 Java 代码?
char x;
x = 'A' + 1;
最佳答案
因为
'A' + 1
是常量表达式。在编译时已知结果将适合 char
。
鉴于
'A' + 787282;
将不适合 char
,因此会导致编译错误。
关于java - Java 中的字符运算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26077771/