Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么这段代码将空字符串和整数连接起来?_Java - Fatal编程技术网

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需要在循环之前声明,而不是像编译器那样内联。