kotlin - Java 的 Kotlin 等效项:类
问题描述
假设我有 A 类作为抽象父类,而 B & C 扩展它。我想创建一个带有输入类 B 和 C 的选项的函数,比如 A 的孩子(或 A 本身)
在 java 中,我只需要定义一个类型,就像Class<? : Extends A>
在 Kotlin 中我可以做的那样KClass<*>
,但这似乎太自由了。
如何仅限制 A 的孩子的选项?
解决方案
在 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)
推荐阅读
- go - 执行 .go 文件时出错。即使安装了 go 也无法识别
- django - 如何使用通道 websocket 在 Django 中定位 websocketbridge.js?
- android - 如何在 RecyclerView 中添加刷新滑动
- python - DJANGO:如何对我的查询执行 AND 操作?
- javascript - JavaScript:未捕获的 RangeError
- php - 使用 preg_match 检查多个变量
- ios - RealmSwiftPermission' 不由 Realm 管理
- javascript - Bootstrap php按钮单击事件以使用第一个值加载另一个页面
- sql - 小型 VBScript 项目请求协助
- c++ - 使用另一个类的 unique_ptr 设置回调函数