Перегрузка оператора на свойства класса - PullRequest
0 голосов
/ 20 апреля 2020

У меня есть класс с именем DateTime, как показано ниже:

class DateTime {

  ...

  var day: Int = 0
    set(value) {
      field = value
      println("value changed!!!")
    }

}

Теперь мне нужно различить guish, меняется ли day с dateTime.day = -1 или dateTime.day -= 1 так, чтобы в первом случае я не хочу разрешать операцию, потому что day не может быть меньше ноль , но во втором случае я хочу вычесть Month на единицу и изменить day на 30 или 31 .

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

Так, как я могу решить проблему, любой обходной путь?

...