【问题标题】:Why i=i+j is not identical to i+=j [duplicate]为什么 i=i+j 与 i+=j 不同 [重复]
【发布时间】:2016-03-11 13:16:56
【问题描述】:

我有以下代码

int i = 5;
long j = 5;

1. i = i + j; // Throwing an exception "Type mismatch: cannot convert from long to int"
2. i += j; // This working fine

如您所见,第一种情况抛出异常,但第二种情况正常。

为什么第二种情况可以正常工作而不抛出任何异常?

【问题讨论】:

  • 第二个表达式有一个隐式类型转换(到 int)

标签: java increment


【解决方案1】:

+= 是一个compound statement,编译器在内部转换它。在第一种情况下直接声明和编译器哭泣。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-20
    • 2020-03-28
    • 2021-02-28
    • 2018-09-06
    • 2012-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多