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