栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

RxJava 2 Cancelableable和Disposable有什么区别?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

RxJava 2 Cancelableable和Disposable有什么区别?

从Javadoc:

[

Cancellable
是]具有单个可以抛出的cancel方法的功能接口。

Disposable
不是一个功能界面以及实现它的时候
dispose()
方法,你不能抛出checked异常。

与此相反,许多非RxJava组件返回

Closeable
或者
AutoCloseable
它们通过定义
throwsIOException
throws Exception
和是一个负担,有些因为你需要的try-catch它。

例如,

setCancellable
在处理文件时要使用:

Observable.create((ObservableEmitter<byte[]> e) -> {    FileInputStream fin = new FileInputStream("raw.dat");    e.setCancellable(fin::close);    byte[] buffer = new byte[4096];    for (;;) {        int r = fin.read(buffer);        if (r < 0) { break;        }        e.onNext(buffer);    }    e.onComplete();});

你会使用

setDisposable
,如果您使用的是
Scheduler

Observable.create((ObservableEmitter<Event> e) -> {    Worker worker = Schedulers.io().createWorker();    e.setDisposable(worker);    eventSource.onEvent(es ->        worker.schedule(() -> e.onNext(es))    );});


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/497071.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号