StringBuilder、StringBuffer 和 java.util.concurrent.atomic 软件包的实例的 equals() 调用。
equals() 方法在这些类中没有被重写,因此即使两个对象的内容相同,它也可能返回 false。
如果您打算使用引用相等,我们建议您使用 == 以避免混淆。
StringBuilder、StringBuffer、AtomicBoolean、AtomicInteger、AtomicBoolean 和 AtomicLong 的快速修复可用来转换为内容的比较。
当其中一个实例为 null 时,快速修复可能会改变语义。
示例:
public void test(StringBuilder sb1, StringBuilder sb2) {
boolean result = sb1.equals(sb2); // 可疑
}
在应用快速修复后:
public void test(StringBuilder sb1, StringBuilder sb2) {
boolean result = sb1.toString().equals(sb2.toString());
}
2017.2 最新变化