据我了解,如果我有两个longint,则由于自动装箱,有时无法使用==运算符测试值的相等性。

在处理原语时,我需要做些什么来确保==在所有可能的情况下都能工作?

最佳答案

向后兼容性要求(JLS同意),如果您有类似

double a = ..
double b = ...
if (a == b) // condition


此条件的工作方式必须与自动装箱之前和自动装箱之后相同。这意味着自动装箱不能并且不能在此处应用。

实际上,如果自动装箱可以使用拆箱代替,则永远不会使用它来编译==表达式。

Integer i = 1000;
int j = 1000;
System.out.println(i == j); // is true


在这种情况下,选择装箱而不是装箱。

关于java - 如何确保==将始终与原语一起用作相等性测试,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19686792/

10-11 00:24