class Apple
{
String tostring(int a , int b)
{
return ("Hello I'm "+a+" and I'm "+b);
}
public static void main(String arp[])
{
apple stupid_obj=new apple();
String a=stupid_obj.tostring(4,5);
System.out.println(a);
}
}
看一下这段代码。在tostring
方法中,我返回的是整数值而不是字符串,并且没有引发错误。我不明白为什么Java接受此代码。
return ("Hello I'm "+a+" and I'm "+b);
a
和b
都是整数值,但java仍将它们视为字符串。
这怎么可能?
答案 0 :(得分:2)
这里:
String toString(int a , int b)
您的方法签名显示:“我将返回一个字符串”(我为您固定了大小写,方法名称应为camelCase)。
然后
return ("Hello I'm "+a+" and I'm "+b);
这里的+
不是整数加法或其他任何东西。它执行字符串连接。这意味着将a
和b
的数值简单地转换为字符串,然后将包含各个子字符串的单个字符串组合在一起并返回。
这是非常基本的行为,绝对“按预期运行”!
答案 1 :(得分:1)
这是JAVA中的正常操作。 当一个或多个Integer值在一个字符串值之后并置时,所有整数值都会自动转换为String ...
字符串a =“ Hello” + 4 + 3 + 1; 因此,包含=“ Hello431” ..
其他情况是... 如果将许多整数整数值放在字符串之前,它将执行正常操作,然后与字符串值并置...
字符串a = 4 + 3 + 1 +“ Hello”;因此,一个include =“ 8Hello” ..