Возвращая целочисленное значение в методе String, все еще не получая никакой ошибки - PullRequest
0 голосов
/ 16 июня 2019
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 обрабатывает их как строку.

Как этоэто возможно?

Ответы [ 2 ]

2 голосов
/ 16 июня 2019

Здесь:

String toString(int a , int b)

Подпись вашего метода гласит: «Я верну строку» (я исправил для вас регистр, имена методов должны идти camelCase ).

Тогда

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

+ здесь не является каким-то целочисленным сложением или чем-то еще. Это делает конкатенацию строк . Это означает, что числовые значения a и b просто превращаются в строки, а затем одна строка, содержащая различные подстроки, собирается и возвращается.

Это очень простое поведение и абсолютно "работает как положено"!

1 голос
/ 16 июня 2019

это нормальная работа в JAVA. когда одно или несколько целочисленных значений объединяются после строкового значения, все целочисленные значения автоматически преобразуются в строковые ...

String a = "Hello" + 4 + 3 + 1; Итак, состоит = "Hello431" ..

другая ситуация ... если много целочисленных целочисленных значений ставится перед строкой, оно выполнит обычную операцию и затем объединится со строковым значением ...

String a = 4 + 3 + 1 + «Hello»; Итак, состоит = "8Hello" ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...