gpt4 book ai didi

generics - 如何在 Kotlin 中约束泛型类型?

转载 作者:行者123 更新时间:2023-12-02 12:52:45 25 4
gpt4 key购买 nike

我正在创建一个接受 Fruits 的 react 流

// PublishSubject is part of RxJava library. It accepts a generic T
class PublishSubject<T> {
...
}

val stream = PublishSubject<Fruit>.create()

但是,我希望它只接受可食用的水果
interface Edible {
fun eat()
}
class Apple: Fruit, Edible

可食用行为界面可以应用于其他食物(冰淇淋、土 bean ),但是,我只想要可食用的水果。
val stream = PublishSubject<Fruit : Edible>.create()

像这样的东西,但这似乎不起作用。

泛型在没有子类化的情况下是否可以在实例化时进一步受到限制 PublishSubject ?

我可以接受所有食物并进行一些骇人听闻的过滤,但这似乎不对 PublishSubject<Edible>.create().filter(edible -> edible is Fruit)

最佳答案

您可以使用 where像这样的关键字:

class PublishSubject<T> where T : Fruit, T : Edible {
...
}

关于generics - 如何在 Kotlin 中约束泛型类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57856298/

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