У меня есть класс с именем 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
, я не могу изменить поведение. И в этих двух случаях будет вызван сеттер, и я не могу обнаружить оператора.
Так, как я могу решить проблему, любой обходной путь?