gpt4 book ai didi

具有泛型类型的 Kotlin 二级构造函数

转载 作者:行者123 更新时间:2023-12-04 21:03:33 24 4
gpt4 key购买 nike

在 Java 中

我可以实现两个构造函数,例如

public TargetTitleEntryController() { }

public <T extends Controller & TargetTitleEntryControllerListener> TargetTitleEntryController(T targetController) {
setTargetController(targetController);
}

我想把它转换成 Kotlin
class TargetTitleEntryController ()

与二级构造函数。我不知道如何使用 Java 对应的泛型类型进行声明。

最佳答案

Kotlin 中没有交集类型(悲伤)

但是有Generic constraints (希望)

但是Generic constraints不适用于二级构造函数(悲伤)

但是您可以使用 Invoke operator overloading 在伴随对象中模拟辅助构造函数(解决方法):

class TargetTitleEntryController {

// ...

companion object {

operator fun <T> invoke(targetController: T): TargetTitleEntryController
where T : Controller,
T : TargetTitleEntryControllerListener {
return TargetTitleEntryController().apply {
setTargetController(targetController)
}
}
}
}

关于具有泛型类型的 Kotlin 二级构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52820280/

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