Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
Java では、 int を"" + intValueで文字列に変換できます。Sonarqube と sonarlint は、これを不適切としてフラグを立てます。
なぜこれは不適切なのですか。私の知る限り、Integer.toString(intValue)はより冗長で、同じことを行います。
"" でない場合にフラグを立てることは想像できますが、オブジェクト x はx + intValueのように使用され、xは整数として初期化されます。Javascriptコードでそのようなことに遭遇しました。
なぜ悪いのかというと、Java は自動的にString連結を最適化してStringBuilder代わりに使用します。つまり、こうすることで
String
StringBuilder
"" + d
実際やってるよね
new StringBuilder().append(d).toString();
もしそうなら
d + ""
あなたはコンパイルすることになります
new StringBuilder(String.valueOf(d)).toString();
これは、呼び出すだけに比べてリソースのかなりの浪費です
String.valueOf(d);