UC.STRV
String、Boolean などの新規オブジェクトをそれらのコンストラクタを呼び出して作成する必要はありません。ファクトリメソッド、静的インスタンス、または単に式の値を使用することで、不要なオブジェクトの作成を回避できます。UC.STRV 警告は、空の文字列を使用する代わりに、new String() コンストラクタの呼び出しが存在する場合に表示されます。
脆弱性とリスク
このメソッドは、余分なオブジェクトを作成してメモリを消費し、パフォーマンスを低下させます。その他の機能的な影響はありません。
例 1
コピー
ArrayList str1(int n) {
ArrayList res = new ArrayList();
for (int i = 0; i < n; i++) {
res.add(new String());
}
return res;
}
// correct one
ArrayList str2(int n) {
ArrayList res = new ArrayList();
for (int i = 0; i < n; i++) {
res.add("");
}
return res;
}
UC.STRV が 16 行目に対して報告されています。不要なオブジェクト作成です。new String() メソッドは空の文字列と置き換え可能です。