String コンストラクター、および toString() または substring() などのメソッドへの冗長な呼び出しを報告します。
たとえば、このようなメソッドの呼び出しは、"string".substring(0)、"string".toString()、new StringBuilder().toString().substring(1,3) のようなコードで安全に除去できます。
例:
System.out.println(new String("message"));
クイックフィックス適用後:
System.out.println("message");
このクイックフィックスは冗長なコンストラクターの呼び出しを除去するため、String 参照の同等性に影響を与える可能性があります。ご注意ください。
たとえバッドプラクティスだとされていても、これを維持する必要がある場合は警告を抑止するか、冗長な String コンストラクターの呼び出しを無視するインスペクション設定を使用してください。
上記の例のようなコードを報告しないようにするには、以下の「String コンストラクターの呼び出しを報告しない」オプションを使用します。
これにより、異なるオブジェクト識別子を保証するために new String() の呼び出しを使用するコードでクイックフィックスを適用した後に == または != を使用する String の比較結果が変更されるのを防ぐことができます。
以下のようなコードを報告しないようにするには、下にある「単一引数の substring() の呼び出しを報告しない」オプションを使用します。
stringBuilder.append(string.substring(5));
これは以下に置換できます。
stringBuilder.append(string, 5, string.length());
2018.1 の新機能です