Collection、Date、Map、Calendar などのミュータブル型の返却、またはメソッドパラメーターからこれらへの代入を報告します。
このような型はミュータブルであるため、このコンストラクトが原因で所有クラス外からの予期しないオブジェクトの状態変更が発生する可能性があります。 このコンストラクトはパフォーマンスの面では有益ですが、本質的にバグを引き起こす可能性があります。
次のミュータブルな型が報告されます:
java.util.Datejava.util.Calendarjava.util.Collectionjava.util.Mapcom.google.common.collect.Multimapcom.google.common.collect.Tableクイックフィックスを使用すると、フィールドの .clone() メソッドの呼び出しが追加されます。
例:
class Log {
String[] messages;
...
String[] getMessages() {
return messages; // 警告: String[] フィールド 'messages' を返しています
}
}
クイックフィックス適用後:
class Log {
String[] messages;
...
String[] getMessages() {
return messages.clone();
}
}
private メソッド内の代入と返却を無視するには、「private メソッドでの代入および private メソッドからの返却を無視する」オプションを使用します。