gpt4 book ai didi

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

转载 作者:IT老高 更新时间:2023-10-28 13:36:06 34 4
gpt4 key购买 nike

我正在尝试构建一个具有 LocalDate 类型属性的类,该类具有接受不同类型的 setter :LocalDateString . 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)
}
}
}

它无法编译。我该如何解决这样的问题?

最佳答案

一段时间后,我回到了setter重载的问题,并制定了以下解决方案:

class A(_date: LocalDate) {
var date: Any = _date
set(value) {
field = helperSet(value)
}
get() = field as LocalDate

private fun <T> helperSet(t: T) = when (t) {
is LocalDate -> t
is String -> LocalDate.parse(t)
else -> throw IllegalArgumentException()
}
}

关于Kotlin:具有多个不同类型 setter 的单个属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46153567/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com