3

在 Java 中,我可以通过"" + intValue将 int 转换为字符串。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 回答