【发布时间】:2020-09-01 08:47:48
【问题描述】:
我正在调查 Kotlin MutableStateFlow/StateFlow 并希望在通用基类中声明我的 MutableStateFlow,如下所示:-
class MyBaseClass<S> {
private val internalState = MutableStateFlow<S>(//WHAT GOES HERE????//)
val state: StateFlow<S>
get() = internalState
}
我遇到的问题是 MutableStateFlow 有一个强制性的初始值。
我看不到如何提供“S”类型的通用初始值
是否可以使用这种使用通用基类实例变量的方法?
【问题讨论】:
-
我发现这个问题很有用stackoverflow.com/questions/43477903/…
-
无论如何,我认为你可以用一些东西包装 S,你可以通过已知的构造函数/提供者实例化。也许是一些包装类?
-
@Steyrix 感谢您的建议,我已经看到了那个问题/答案,但是我不喜欢使用 .class 构造函数等的想法
-
你不能直接在
MyBaseClass<S>的构造函数中添加一个参数表示默认值,然后传递给MutableStateFlow<S>()吗?
标签: kotlin kotlin-flow