@qdn14424

Переменная не сохраняет значение, Чувствую, что туплю и оно не должно работать, ткните носом почему?

Учил давно основы, сейчас попытка вернуться и чего-то написать, многое забылось и вот не понимаю почему не работает.
pseudo-code:

.....
private class ParseTask extends AsyncTask<Context, Void, String>
    {  ......
        String resJson = "";
        .......

        boolean doSomethingAndExtractTo(String jsonAsString) // try to open a conn.
        {
           ....
          jsonAsString = mutableString.toString();
           .....
         }

       @Override
        protected String doInBackground(Context... params)
        { .....
           doSomethingAndExtractTo(resJson);
.....
         }
    }


передаю как параметр существующую переменную resJson ожидаю, что внутри метода ей присвоят значение, внутри метода значение имеет.
но вне метода будто ничего не писал. Я чувствую, что так нельзя, наверное через this.resJson = mutableString.toString(); можно, но почему так нельзя?
  • Вопрос задан
  • 310 просмотров
Решения вопроса 1
@MiiNiPaa
В Java все объекты — ссылки, передающиеся как значения.

jsonAsString = mutableString.toString(); заставит локальную переменную jsonAsString ссылаться на новую строку. С оригинальной строкой ничего не случится.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
be_a_dancer
@be_a_dancer
Backend/Fullstack Developer
Пусть метод возвращает значение
String doSomethingAndExtractTo(String jsonAsString){
return mutableString.toString();
}
public static void main(String[] args){
resJson = "TextGoesHere";
resJson =  doSomethingAndExtractTo(resJson);
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы