gpt4 book ai didi

kotlin - 有没有办法接受 Kotlin 中类型为 A 或 B 的参数?

转载 作者:行者123 更新时间:2023-12-05 00:55:21 26 4
gpt4 key购买 nike

假设我有 AB:

data class A(val a: String, val common: String)
data class B(val b: String, val common: String)

我可以有一个方法可以接受其中一个并在其中使用 common 吗?类似:

fun accept(val param: A|B) {
println(param.common)
}

最佳答案

Sealed类几乎可以做到这一点:

sealed class AorB (val common : String)
class A(val a: String, common: String) : AorB(common)
class B(val b: String, common: String) : AorB(common)

fun accept(param: AorB) {
println(param.common)
when(param) {
is A -> println(param.a)
is B -> println(param.b)
}
}

fun main() {
accept(A("a value", "common value"))
accept(B("b value", "common value"))
}

关于kotlin - 有没有办法接受 Kotlin 中类型为 A 或 B 的参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64660912/

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