相关疑难解决方法(0)

比较装箱的长值127和128

我想使用条件比较两个Long对象值if.当这些值小于128时,if条件正常工作,但当它们大于或等于128时,比较失败.

例:

Long num1 = 127;
Long num2 = 127;

if (num1 == num2) {
    // Works ok
}
Run Code Online (Sandbox Code Playgroud)

上面的代码比较正常,但在下面的代码中失败:

Long num1 = 128;
Long num2 = 128;

if (num1 == num2) {
    // Does NOT work
}
Run Code Online (Sandbox Code Playgroud)

为什么在将Long变量与大于127的值进行比较时会出现问题?如果变量数据类型更改为长基元,则比较适用于所有情况.

java comparison autoboxing

103
推荐指数
3
解决办法
14万
查看次数

标签 统计

autoboxing ×1

comparison ×1

java ×1