public static void main(String[] args) {
Character x = ' ';
while (x++ < 50) {
int p = x;
}
System.out.println(x instanceof Character);
}
因为这是一个一元的操作++。 x被取消装入char,然后在执行操作之前扩展为int。 当我退出循环时,我得到'真'。 我无法理解如何将int装入Character Back; java可以允许将int装入Integer或装箱,并将int扩展为Number,Object等。
答案 0 :(得分:2)
答案在于Java语言规范§15.14.2 Postfix Increment Operator ++
(我强调)
在运行时,如果操作数表达式的评估完成 突然,后缀增量表达式突然完成 同样的原因,没有增加。否则,值为1 被添加到变量的值中,并将总和存回 变量。在添加之前,二进制数字促销(§5.6.2) 在值1和变量的值上执行。 如果 必要时,通过缩小的原始转换来缩小总和 (§5.1.3)和/或受到拳击转换(§5.1.7)的类型 存储之前的变量。后缀增量的值 expression是新值之前变量的值 存储