Можно ли использовать конструкцию if…else в setter'e?

218
07 июля 2017, 04:46

Всем привет! Простите за нубский вопрос, но можно ли использовать условие в сеттере? В решаемой задаче получаемое значение должно соответствовать некоему условию, в противном случае должно подставляться дефолтное значение. Я хочу сделать так, но не уверен, что это правильно:

public void setHouseName(String houseName) {
    if (houseName.length()<4 || houseName.length()>20){
        this.houseName = "House#" + collectorNumber;
    }
    else{
        this.houseName = houseName;
    }
}
Answer 1

Да, конечно можно. Только это будет сеттер, который устанавливает значение. Геттер наоборот, возвращает его

public void setHouseName(String houseName) {
    if (houseName.length() < 4 || houseName.length() > 20) {
        this.houseName = "House#" + collectorNumber;
    }
    else {
        this.houseName = houseName;
    }
}
Answer 2
  1. Ты точно отличаешь getter от setter'а?
  2. В обоих можно, т. к. это просто обычные функции. Теоретически, для того и нужны.
  3. Код в вопросе неверный, поскольку присваивание this.houseName = houseName; происходит безусловно. Нужно оставить присваивания только в ветвях if'а, а последнее убрать.
READ ALSO
JSON массивы, что не так?

JSON массивы, что не так?

Я хочу распарсить вот это https://rawgithubusercontent

254
InvalidPathException: Illegal char &lt;:&gt; at index 2

InvalidPathException: Illegal char <:> at index 2

Есть файл из которого я считаю пути к файлам, заношу в список и дальше считаю сколько в этих путях файлов

337
Не вызывается onCreate()

Не вызывается onCreate()

Начал изучать android Такая проблема, не вызывается метод onCreate()Создал тестовую активность TestActivity

306
Как сделать из BufferedImage картинку 0 и 1

Как сделать из BufferedImage картинку 0 и 1

ЗдравствуйтеУ меня есть черно-белое изображение в BufferedImage

231