Студия Android не создает объект, используя другой класс - PullRequest
0 голосов
/ 28 января 2019

WeatherDataModel weatherDataModel = new WeatherDataModel.fromJson(response);

Я создаю WeatherDataModel (мой второй класс) объект, используя метод fromJson (определенный в WeatherDataModel классе) в моем MainActivityиспользуя ответ параметров.

Но когда я пишу код выше, Android Studio не может распознать fromJson, но когда я пишу это:

WeatherDataModel weatherDataModel = new WeatherDataModel();
weatherDataModel.fromJson(response);

Не выдает никакой ошибки.

Есть ли разница между этими двумя строками?

Ответы [ 2 ]

0 голосов
/ 29 января 2019

Либо вы пропустили скобки для конструктора, либо вы даже можете избавиться от ключевого слова new, объявив статический метод fromJson, что будет иметь еще больший смысл с точки зрения читаемости кода.

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

Поэтому я бы объявил этот метод как

public static WeatherDataModel fromJson(String response) {
    WeatherDataModel wd = new WeatherDataModel();
    // parse your response into wd's fields
    return wd;
}

и тогда ваш звонок будет выглядеть как

WeatherDataModel model = WeatherDataModel.fromJson(response);

Надеюсь, это поможет, ура

0 голосов
/ 29 января 2019

Вам нужен экземпляр объекта перед вызовом метода, поэтому ваш код должен быть таким:

WeatherDataModel weatherDataModel = new WeatherDataModel().fromJson(response);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...