如何在Kotlin中使用getInstance?

我无法使用 createInstance(). 例如: Foo::class.createInstance()

我有一个使用Kotlin 1.3.70的gradle项目。kotlin("jvm") version "1.3.70" 插件,并且有 implementation(kotlin("stdlib-jdk8"))implementation(kotlin("reflect")) 在我的依赖关系中。

有谁知道为什么这个函数不见了?

我有一个函数,它接收一个 classType: KClass<Foo> 而我想创建一个 Foo 使用noarg构造函数。

解决方案:

要使用Java反射(如 newInstance())你需要 访问相应的Java类:

fun createInstance(classType: KClass<Foo>): Foo = classType.java.newInstance()

但Kotlin提供了 createInstance() 作为该用例的更好选择。

创建一个新的类的实例,调用一个构造函数,这个构造函数要么没有参数,要么所有参数都是可选的。

fun createInstance(classType: KClass<Foo>): Foo = classType.createInstance()

给TA打赏
共{{data.count}}人
人已打赏
解决方案

JQ:如何使用jq挑选的数据创建JSON对象?

2022-5-14 14:00:18

解决方案

Kotlin : 变量'result'必须被初始化。

2022-5-14 15:00:29

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索