gpt4 book ai didi

kotlin - Kotlin 中密封类的成员数量

转载 作者:行者123 更新时间:2023-12-01 00:19:23 24 4
gpt4 key购买 nike

有什么办法可以得到sealed class的成员(member)数量吗?在 Kotlin ?
例如,对于这个类,它将是 2:

sealed class Foo {
object Bar : Foo()
data class Baz(val m: String) : Foo()
}

最佳答案

您可以使用 KClass.nestedClasses kotlin 反射 api。这将返回在给定类中声明的所有类(例如,也列出了伴随对象)。

fun countSubclasses(clazz: KClass<*>): Int =
clazz.nestedClasses.filter {
it.isSubclassOf(clazz)
}.size

要调用此函数,请使用
countSubClasses(Foo::class)

详细信息见 kotlin reflection reference .

关于kotlin - Kotlin 中密封类的成员数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50021665/

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