为什么在SonarQube中为Java标记了""+ int

Han*_*ans 3 java sonarqube sonarlint

在Java中,我可以通过""+ intValue将int转换为字符串.Sonarqube和sonarlint将此标记为不合适.

为什么这不合适.据我所知,Integer.toString(intValue)更详细,并且相同.

我可以设想标记它,如果不是""但是对象x用作x + intValue,其中x被初始化为整数.使用Javascript代码进行类似的操作.

Sam*_*Sun 7

关于它为什么不好,Java会自动优化String串联以StringBuilder代替使用.这意味着通过这样做

"" + d
Run Code Online (Sandbox Code Playgroud)

你真的在做

new StringBuilder().append(d).toString();
Run Code Online (Sandbox Code Playgroud)

如果你这样做

d + ""
Run Code Online (Sandbox Code Playgroud)

你最终编译

new StringBuilder(String.valueOf(d)).toString();
Run Code Online (Sandbox Code Playgroud)

与仅仅打电话相比,这是相当大的资源浪费

String.valueOf(d);
Run Code Online (Sandbox Code Playgroud)