报告可以安全地设为 final 的字段。 所有 final 字段都应具有一个不会更改的值,从而使代码更易于推理。

为避免分析开销过大,此检查仅报告字段是否具有 private 修饰符或者是否在局部类或匿名类中定义。 如果满足以下条件,字段可以为 final

并且字段未在其他任何地方进行修改。

示例:


  public class Person {
    private String name; // 可以为 final

    Person(String name) {
      this.name = name;
    }

    public String getName() {
      return name;
    }
  }

在应用快速修复后:


  public class Person {
    private final String name;

    Person(String name) {
      this.name = name;
    }

    public String getName() {
      return name;
    }
  }