开源 企业版 高校版 私有云 模力方舟 AI 队友
代码拉取完成,页面将自动刷新
加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
已有帐号? 立即登录
文件
master
分支 (1)
master
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
项目仓库所选许可证以仓库主分支所使用许可证为准
master
分支 (1)
master
克隆/下载
克隆/下载
提示
下载代码请复制以下命令到终端执行
为确保你提交的代码身份被 Gitee 正确识别,请执行以下命令完成配置
初次使用 SSH 协议进行代码克隆、推送等操作时,需按下述提示完成 SSH 配置
1 生成 RSA 密钥
2 获取 RSA 公钥内容,并配置到 SSH公钥
在 Gitee 上使用 SVN,请访问 使用指南
使用 HTTPS 协议时,命令行会出现如下账号密码验证步骤。基于安全考虑,Gitee 建议 配置并使用私人令牌 替代登录密码进行克隆、推送等操作
Username for 'https://gitee.com': userName
Password for 'https://userName@gitee.com': # 私人令牌
master
分支 (1)
master
Java8API
/
src
/
main
/
java
/
rx
/
Rx3Java.java
Java8API
/
src
/
main
/
java
/
rx
/
Rx3Java.java
Rx3Java.java 6.21 KB
一键复制 编辑 原始数据 按行查看 历史
dingqb2 提交于 2026年03月05日 19:02 +08:00 . json\canid
package rx;
import io.reactivex.rxjava3.annotations.NonNull;
import io.reactivex.rxjava3.core.*;
import io.reactivex.rxjava3.disposables.Disposable;
import io.reactivex.rxjava3.functions.Consumer;
import io.reactivex.rxjava3.functions.Function;
import io.reactivex.rxjava3.functions.Predicate;
import log.Log;
import java.util.concurrent.atomic.AtomicInteger;
public class Rx3Java {
public static void main(String[] args) throws InterruptedException {
// extracted();
// extracted1();
sysout();
}
private static void sysout() {
Flowable.just("Hello world").subscribe(System.out::println);
//
Flowable<Integer> flow = Flowable.range(1, 5)
.map(v -> v * v)
.filter(v -> v % 2 == 0);
flow.subscribe(System.out::println);
AtomicInteger count = new AtomicInteger();
Observable.range(1, 100)
.doOnNext(ignored -> count.incrementAndGet())
.ignoreElements()
.andThen(Single.just(count.get()))
.subscribe(System.out::println);
}
private static void extracted1() {
//创建被观察者Observable(电视剧)
//使用create操作符从头开始创建一个Observable
Observable<String> TVplay = Observable.create(new ObservableOnSubscribe<String>() {//ObservableOnSubscribe<T>其实就像一个队列一样
@Override
public void subscribe(@NonNull ObservableEmitter<String> emitter) throws Throwable {//ObservableEmitter可以理解为事件发射器
//重写subscribe()定义需要发送的事件
//ObservableEmitter有三种发射方法,onNext()、onComplete()、onError()
//onNext()发送事件,可以无限调用,所有的发射信息观察者都可以收得到
emitter.onNext("电视剧第一集");
emitter.onNext("电视剧第二集");
emitter.onNext("电视剧第三集");
//onComplete()、onError()是互斥的,观察者只会收到一个
//onComplete()完成事件发送,可以重复调用,但是观察者只会接收一次
emitter.onComplete();
//onError()异常发送,不可以重复调用
//emitter.onError(new IllegalArgumentException("TVplay Exception!"));
}
});
//RxJava还提供了其他方法用于创建被观察者对象Observable
//just(T...):直接将传入的参数依次发送出来(将一个或多个对象转换成发射这个或这些对象的一个Observable)
// Observable<String> observable = Observable.just("电视剧第一集", "电视剧第二集", "电视剧第三集");//这个跟上面的作用是一样的
//还有很多,比如from等...create、just、from其实就是RxJava的操作符,可以期待本人的RxJava操作符文章
//创建观察者Observer(观影者)
Observer<String> viewer = new Observer<String>() {
//定义Disposable类变量
//private Disposable mDisposable;
//事件队列开始
@Override
public void onSubscribe(@NonNull Disposable d) {//Disposable可以当作订阅关系
//当订阅时被调用
Log.e("RxJava_TAG", "onSubscribe");
//取消/解除订阅
//d.dispose();
//是否已经解除订阅
//d.isDisposed();
//可以这样操作
//mDisposable = d;
}
//普通事件
@Override
public void onNext(@NonNull String s) {
//发送数据时被多次调用
Log.e("RxJava_TAG", "onNext" + s);
//取消/解除订阅实例
//if ("电视剧第二集".equals(s)) {
// //设置在接收到"电视剧第三集"事件后切断观察者和被观察者的连接
// mDisposable.dispose();
// Log.d("RxJava_TAG", "是否已经切断了连接:" + mDisposable.isDisposed());
//}
}
//事件队列异常事件
@Override
public void onError(@NonNull Throwable e) {
//在事件处理过程中出现异常时,onError()方法会被触发
Log.e("RxJava_TAG", "onError");
}
//事件队列完结事件
@Override
public void onComplete() {
//RxJava把所有事件都当作队列处理
//当被观察者不再发送onNext()普通事件的时候
Log.e("RxJava_TAG", "onComplete");
}
};
//订阅Subscribe(关系绑定)
//当被观察者Observable被订阅时,即事件序列就会依照设定依次被触发
//即观察者Observer会依次调用对应事件的复写方法从而响应事件
//从而实现被观察者Observable调用了观察者Observer的回调方法(或者说被观察者向观察者的事件传递)
TVplay.subscribe(viewer);
}
private static void extracted() {
Observable.just("Hello", "World")
.flatMap(new Function<String, ObservableSource<String>>() {
@Override
public ObservableSource<String> apply(String s) throws Throwable {
Log.e(s, s);
return Observable.just(s + s);
}
})
.map(new Function<String, String>() {
@Override
public String apply(String s) throws Throwable {
return s + " - " + s;
}
}).filter(new Predicate<String>() {
@Override
public boolean test(String s) throws Throwable {
return s.contains("He");
}
})
.subscribe(new Consumer<String>() {
@Override
public void accept(String s) throws Exception {
System.err.println(s + " " + Thread.currentThread().getName());
}
});
}
}
Loading...
举报
举报成功
我们将于2个工作日内通过站内信反馈结果给你!
请认真填写举报原因,尽可能描述详细。
请选择举报类型
取消
发送
误判申诉

此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。

如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。

取消
提交

发行版

暂无发行版

贡献者

全部

近期动态

不能加载更多了
编辑仓库简介
简介内容
主页
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Java
1
https://gitee.com/dinqb/Java8API.git
git@gitee.com:dinqb/Java8API.git
dinqb
Java8API
Java8API
master
点此查找更多帮助

搜索帮助

评论
仓库举报
回到顶部
登录提示
该操作需登录 Gitee 帐号,请先登录后再操作。
立即登录
没有帐号,去注册

AltStyle によって変換されたページ (->オリジナル) /