Java 为什么这段代码将空字符串和整数连接起来?
这段代码是什么意思Java 为什么这段代码将空字符串和整数连接起来?,java,Java,这段代码是什么意思 int value; if (value > 0) String input = "" + value; 它正在将值转换为字符串“+value与value.toString()非常相似。“表示编译器正在查找+后面的字符串,因此当它在该空间中看到值时,它会自动调用值.toString(),以生成字符串结果。它正在将值转换为字符串“+value与value.toString()非常相似。“表示编译器正在查找+后面的字符串,因此当它在该空间中看到值时,它会自动调用值.to
int value;
if (value > 0)
String input = "" + value;
它正在将
值
转换为字符串“+value
与value.toString()
非常相似。“
表示编译器正在查找+
后面的字符串,因此当它在该空间中看到值时,它会自动调用值.toString()
,以生成字符串结果。它正在将值
转换为字符串“+value
与value.toString()
非常相似。“
表示编译器正在查找+
后面的字符串,因此当它在该空间中看到值时,它会自动调用值.toString()
,以生成字符串结果。字符串输入=”“+值代码>值
是整数类型。将其添加到空字符串-“
只是将其设置为字符串。假设value=3
,那么“”+value
将是“3”
Edit:忘了提到函数,这是另一种将几乎所有基本类型转换为String
String input=”“+值的静态实用方法代码>值
是整数类型。将其添加到空字符串-“
只是将其设置为字符串。假设value=3
,那么“”+value
将是“3”
Edit:忘了提到函数,这是另一种将几乎所有基本类型转换为String
的静态实用程序方法。编译器知道如何添加带有字符串值的整数。因此,在代码中,直接调用整数到字符串的转换方法。编码器生成一个常量字符串“”(其中没有值),然后调用连接运算符(+)重载方法将整数相加并转换为字符串值 编译器知道如何添加带有字符串值的整数。因此,在代码中,直接调用整数到字符串的转换方法。编码器生成一个常量字符串“”(其中没有值),然后调用连接运算符(+)重载方法将整数相加并转换为字符串值 让编译器自动将int
转换成String
,这是一种相当严酷的方式。一行代码中有很多代码需要解释。让编译器自动将int
转换成字符串,这是一种相当严酷的方式。一行代码中有很多代码需要解释解释。更像是Integer.toString(value)
,因为它是int
,但思想是一样的(+1)。对字符串使用“+
”是一种非常糟糕的做法。开发人员应使用value.toString()
或StringBuilder
(至少)。@air-dex,具体取决于上下文。例如,在循环中,这可能被认为是一种不好的做法,但对于一次性连接,它通常是好的。当然,在这种特定情况下,首选Integer.toString()
方法。@air-dex不一定在StringBuilder上。编译器会自动将内联连接转换为StringBuilder方法,但连接方法更具可读性。仅当串联发生时才应使用StringBuilder,例如,在循环中,StringBuilder需要在循环之前声明,而不是像编译器那样内联。更像是Integer.toString(value)
,因为它是int
,但思想是一样的(+1)。将“+
”与字符串一起使用是一种非常糟糕的做法。开发人员应使用value.toString()
或StringBuilder
(至少)。@air-dex,具体取决于上下文。例如,在循环中,这可能被认为是一种不好的做法,但对于一次性连接,它通常是好的。当然,在这种特定情况下,首选Integer.toString()
方法。@air-dex不一定在StringBuilder上。编译器会自动将内联连接转换为StringBuilder方法,但连接方法更具可读性。仅当串联发生时才应使用StringBuilder,例如,在循环中,StringBuilder需要在循环之前声明,而不是像编译器那样内联。