java - 将 char 变量增加 int 值

标签 java

我编写了两个版本的 Java 代码来将 char 变量递增 1:

版本1:

char c = 'a';
c = c + 1;

版本2:

char c = 'a';
c += 1;

令我惊讶的是,第二个版本编译并成功运行,但第一个版本显示错误,指出不兼容的类型:从 int 到 char 的有损转换。为什么它们不同?

最佳答案

第二个版本涉及强制转换,相当于:

c = (char) (c + 1);

参见JLS section 15.26.2 (复合运算符):

A compound assignment expression of the form E1 op= E2 is equivalent to E1 = (T) ((E1) op (E2)), where T is the type of E1, except that E1 is evaluated only once.

关于java - 将 char 变量增加 int 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35374896/

相关文章:

java - 调整在Processing中的setup()中创建的对象

java - Windows Azure VM 实例。由Java控制

java - 如何使用 JNI 实例化 Java 泛型?

java - Spring AMQP : Send reply from POJO listener failure because of missing reply-to property

java - 如何快速获取图像矩阵? java

java - jasper pdf报告生成,传递模型和 View 时状态404

java - 在 ListFragment 中使用 asset 文件夹中的图像而不是可绘制文件夹

java - 在 Java 中生成安全表单 token

java - MQTT 或 RSMB 可以处理多少用户和推送消息?

java - 使用字符串获取的尺寸设置文本大小