【问题标题】:BehaviorSubject with nullable type?具有可为空类型的 BehaviorSubject?
【发布时间】:2021-08-15 14:09:09
【问题描述】:

我正在寻找类似BehaviorSubject<Object?> 的内容。不幸的是,BehaviorSubject 会抛出 NullPointerExceptions,即使该类型可以为空。

根据文档,BehaviorSubject 不允许 null 作为 onNext 的参数。与ReplaySubject 相同,我认为它可以替代BehaviorSubject

我在后端的BehaviorSubject 中存储了一个值,该值需要可观察(通过我的前端中的一些LiveData),但它不是所有实例都存在的值,因此可以为空。

【问题讨论】:

    标签: kotlin rx-android reactivex


    【解决方案1】:

    您的问题不在于 BehaviorSubject,而在于类型。与流行的看法相反,对象?不是可空对象,它是一个 可选 对象,其中值可以是对象或未定义。

    你想要的是这个:

    let mySubject = new BehaviorSubject<object | null>(null);
    mySubject.subscribe(x => {
      console.log(x);
    });
    

    或者,您显然可以在原始代码中使用 undefined 而不是 null 的值,两者都可以。

    您可以在这里阅读更多内容:https://tutorialsforangular.com/2021/02/08/optional-vs-nullable-in-typescript-angular/

    【讨论】:

    • 我应该提到我使用 Kotlin。没有undefinedBehaviorSubject&lt;object | null&gt; 语法无效。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-23
    • 2012-09-24
    • 2019-07-02
    • 2011-01-06
    相关资源
    最近更新 更多