报告对 StringBuilderStringBufferjava.util.concurrent.atomic 软件包的实例的 equals() 调用。

equals() 方法在这些类中没有被重写,因此即使两个对象的内容相同,它也可能返回 false。 如果您打算使用引用相等,我们建议您使用 == 以避免混淆。

StringBuilderStringBufferAtomicBooleanAtomicIntegerAtomicBooleanAtomicLong 的快速修复可用来转换为内容的比较。 当其中一个实例为 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 最新变化