final にできるフィールドを報告します。
すべての final フィールドは変化しない値を持つため、コードを推論しやすくなります。
解析に多大なコストがかからないようにするため、このインスペクションはフィールドに private 修飾子があるか、フィールドがローカルクラスまたは匿名クラスで定義されているときのみ報告します。
次の条件を満たす場合にフィールドを final にできます。
static であり、その宣言内か 1 つの static イニシャライザーで 1 回だけ初期化されている。static であり、その宣言内、1 つのインスタンスイニシャライザー、あるいはすべてのコンストラクター内で 1 回だけ初期化されている。例:
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;
}
}
暗黙的なフィールドの書き込みを想定するアノテーションのリストを変更するには、「アノテーション」ボタンを使用します。