假设我有类 A 作为抽象父类,而 B 和 C 扩展了它。我想创建一个带有输入类 B 和 C 的选项的函数,例如 A 的子类(或 A 本身)
在 java 中,我只需要定义一个类型,就像Class<? : Extends A>
在 Kotlin 中我可以做的那样KClass<*>,但这似乎太自由了。
我怎样才能将选项限制为仅适用于 A 的孩子?
小智 7
在 Kotlin 中,如果你KClass<*>愿意接受所有课程。如果您定义 withKClass<A>将仅接受A类。为了接受 A 及其子项,您定义了KClass<out A>。请参阅下面的示例
abstract class A
class B:A()
class C:A()
fun method (param : KClass<out A>){}
method(B::class)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1168 次 |
| 最近记录: |