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 最新变化