Работа с конструктором в JAVA

В JAVA при создании нового объекта класса мы передаем параметры которые конструктор установит для свойств класса.

Пример: мое приложение отправило GET запрос и получило данные о погоде, город, температура сегодня, температура завтра, скорость ветра, пусть их будет 15 или 20. В случае если получены все параметры, конструктор эти значения присвоит в свойства(переменные). В случае если ничего не получено я могу создать еще один конструктор и написать логику поведения для этого сценария. Но что делать если один или несколько параметров получить не удалось? К примеру не удалось получить скорость ветра или скорость ветра и температуру на завтра и так далее. Как мне использовать конструктор в данной ситуации?

Большое спасибо за помощь!


Ответы (3 шт):

Автор решения: Danny

Создайте конструктор по умолчанию и сеттеры. Конструктор по умолчанию - это который без аргументов, у него пустые скобки (). Он создает объект с неинициализированными полями. Допустим, у вас класс Weather. И у вас уже есть конструктор с аргументами. Добавляете рядом пустой конструктор по умолчанию:

public Weather(){
}

Сеттеры - это методы вида

void setTemperature(double temp){
    this.temp = temp;
}

Конструкторов у вас тогда будет несколько. В Java это нормально.

→ Ссылка
Автор решения: Andrew Kachalin

Ваша проблема имеет множество решений. Я бы это так сделал:

  1. Все примитивные поля класса Wheather заменил бы на ссылочные. int -> Integer, double -> Double и так далее.
  2. Написал бы только один конструктор, куда передаётся все ваши 15 или 20 полей.
  3. Если у меня к примеру, параметр №12 не пришёл в гет-запросе, я бы передал в конструктор null ссылку. null - отличное зарезервированное значение.
→ Ссылка
Автор решения: Roman C

Как мне использовать конструктор в данной ситуации?

Конструктор можно использовать с помощью оператора this() или super(). Вот здесь есть описание как и почему использовать эти операторы для вызова конструктора с необходимым количеством параметров.

→ Ссылка