NPE 被描述为“值(value)数十亿美元的错误”。我不得不相信紧随其后的第二个可能是将装箱基元与“==”而不是 .equals(...) 进行比较。
当我们的代码库的一部分返回 Long
而不是 long
时,例如:
class Car {
Long speed;
}
和
Car carA, carB;
boolean res1 = carA.getSpeed() == carB.getSpeed(); // could fail if the speeds are equal because the wrappers are distinct.
boolean res2 = Objects.equals(carA.getSpeed(), carB.getSpeed()); // compares by value and works
这种事情在 PR 中很容易被忽略。有没有办法生成警告来捕捉这种情况?我们使用声纳、FWIW。
最佳答案
如果您使用 IntelliJ,默认情况下会发出警告
参见https://www.jetbrains.com/help/idea/list-of-java-inspections.html#code-maturity了解更多详情
关于java - 当我们尝试将 Java 装箱基元与 "=="而不是 ".equals"进行比较时,我可以生成警告吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69290736/