Kotlin:具有多个不同类型的setter的单一属性

前端之家收集整理的这篇文章主要介绍了Kotlin:具有多个不同类型的setter的单一属性前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试构建一个具有LocalDate类型属性的类,该类具有接受不同类型的setter:LocalDate或String.在LocalDate的情况下,值直接分配,在String的情况下,它被解析然后分配.
Java中,我只需要实现两个重载的setter来处理上述两种情况.但我不知道如何处理Kotlin.我试过这个:
class SomeExampleClass(var _date: LocalDate) {
    var date = _date
        set(value) {
            when(value) {
                is LocalDate -> value
                is String -> LocalDate.parse(value)
            }
        }
}

它不编译.我该如何解决这个问题?

因此,如果您只想构建它(通过构造函数),只需创建一个 secondary constructor即可
SomeExampleClass(LocalDate.MAX)
SomeExampleClass("2007-12-03")

class SomeExampleClass(var _date: LocalDate) {
    constructor(_date: String) : this(LocalDate.parse(_date))
}

猜你在找的设计模式相关文章