java - 为什么我不能写 ch=ch+1;而不是 ch++;尽管它们具有相同的含义

标签 java char integer increment

package practicejava;

public class Query {

    public static void main(String[] args) {
        char ch = 66;
        System.out.println("character= " + ch);

        ch++;

        System.out.println("character = " + ch);

    }
}

技术上 ch++;ch=ch+1; 是一样的,但是为什么我写 ch=ch+1; 而不是 ch++;?

最佳答案

您需要提供 Actor 才能做到这一点:

ch = (char) (ch + 1);

这是因为表达式 ch + 1 被提升(upcast)为 int。为了将此表达式重新分配给 char,您需要显式向下转换它。

关于java - 为什么我不能写 ch=ch+1;而不是 ch++;尽管它们具有相同的含义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53791297/

相关文章:

java - Android:应用程序在上传图片时在设备上崩溃,java.lang.outofMemoryError

Java:如何从 maven 故障安全插件访问元文件信息?

java - "line.separator"的实际值是多少?

c++ - cv::大整数垫

java - 声明二进制整型常量

Java线程间通信不传递消息对象

java - 没有方法的接口(interface)与字段

C - 为什么我在尝试读取包含反斜杠的字符时遇到段错误?

java - 在二维数组java中依次查找字符的特定组合

integer - 在 fortran 中访问无符号整数值