3

Java では、 int を"" + intValueで文字列に変換できます。Sonarqube と sonarlint は、これを不適切としてフラグを立てます。

なぜこれは不適切なのですか。私の知る限り、Integer.toString(intValue)はより冗長で、同じことを行います。

"" でない場合にフラグを立てることは想像できますが、オブジェクト x はx + intValueのように使用され、xは整数として初期化されます。Javascriptコードでそのようなことに遭遇しました。

4

1 に答える 1

7

なぜ悪いのかというと、Java は自動的にString連結を最適化してStringBuilder代わりに使用します。つまり、こうすることで

"" + d

実際やってるよね

new StringBuilder().append(d).toString();

もしそうなら

d + ""

あなたはコンパイルすることになります

new StringBuilder(String.valueOf(d)).toString();

これは、呼び出すだけに比べてリソースのかなりの浪費です

String.valueOf(d);
于 2016-01-07T15:12:09.053 に答える