在String方法中返回整数值仍然不会出现任何错误

时间:2019-06-16 06:23:45

标签: java

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);

ab都是整数值,但java仍将它们视为字符串。

这怎么可能?

2 个答案:

答案 0 :(得分:2)

这里:

String toString(int a , int b)

您的方法签名显示:“我将返回一个字符串”(我为您固定了大小写,方法名称应为camelCase)。

然后

    return ("Hello I'm "+a+" and I'm "+b);

这里的+不是整数加法或其他任何东西。它执行字符串连接。这意味着将ab的数值简单地转换为字符串,然后将包含各个子字符串的单个字符串组合在一起并返回。

这是非常基本的行为,绝对“按预期运行”!

答案 1 :(得分:1)

这是JAVA中的正常操作。 当一个或多个Integer值在一个字符串值之后并置时,所有整数值都会自动转换为String ...

  

字符串a =“ Hello” + 4 + 3 + 1;   因此,包含=“ Hello431” ..

其他情况是... 如果将许多整数整数值放在字符串之前,它将执行正常操作,然后与字符串值并置...

  

字符串a = 4 + 3 + 1 +“ Hello”;因此,一个include =“ 8Hello” ..