为什么这段代码连接空字符串和整数?

use*_*629 1 java

这段代码是什么意思?

int value;
if (value > 0)
 String input = "" + value;
Run Code Online (Sandbox Code Playgroud)

cxw*_*cxw 10

它正在转换value为字符串. "" + value非常相似value.toString().这""意味着编译器在之后查找字符串+,因此当它value在该空间中看到时,它会自动调用value.toString()以生成字符串结果.

  • 更像是'Integer.toString(value)`,因为它是一个`int`,但想法是相同的(+1). (3认同)
  • @ air-dex不一定在StringBuilder上.编译器自动将内联连接转换为StringBuilder方法,但串联方法更具可读性.只有在连接发生时才应该使用StringBuilder,例如,在循环中,需要在循环之前声明StringBuilder,而不是像编译器那样声明内联. (3认同)