01_RxJava操作符示例代码

    抽时间研究了下RxJava,因为网络博文讲述描述性文字较多,示例较少,很多时候不知道怎么开始入手学习RxJava,因此在此发文让想入门的看了博文之后实操一下,步骤很简单:

    1.在网上下载一个RxJava的jar包,我找到一个1.1.5jar包,也不用管版本的高低,先入门是没问题的,写几个例子一点问题没有,什么RxJava2,大家大可不必慌张去学习,研究低版本的,是让我们知道低层版本是怎样做的,在发展到RxJava2的时候,又做了哪些改进,所以遵从一个由低到高的顺序,你不会吃亏的。(扯远了)

    2.在Eclipse里面建一个java工程,新建一个libs目录,将下载到的RxJava 的jar包放到该目录下,然后添加到构建路径(add lib to build path).

    3.接下来就可以建一个包,然后建一个类,开始在main()里面写示例代码了,学东西先让它运行起来再看是怎么回事儿。接下来贴一下我学习时写的hello world与操作符使用的示例代码,供大家参考,希望对入门的人有所帮助。


package com.gdc.rxjava;

import java.util.ArrayList;
import java.util.concurrent.TimeUnit;

import rx.Observable;
import rx.Observable.OnSubscribe;
import rx.functions.Func0;
import rx.Subscriber;

public class HelloWorld {

	public static void main(String[] args) {
		// helloworld();
		// create();
		// just();
		// from();
		// defer();
		// empty();
		// never();
		// throwtest();
		// interval();
		// range();
		repeat();
	}

	private static void create() {
		Observable.create(new OnSubscribe<String>() {

			@Override
			public void call(Subscriber<? super String> subscriber) {
				subscriber.onNext("中华人民共和国 RxJava学习");
			}
		}).subscribe(new Subscriber<String>() {

			@Override
			public void onCompleted() {
				System.out.println("onCompleted()");
			}

			@Override
			public void onError(Throwable arg0) {
				System.out.println("onError():" + arg0);
			}

			@Override
			public void onNext(String arg0) {
				System.out.println("onNext():" + arg0);
			}
		});
	}

	private static void just() {
		Observable.just("中华人民共和国 RxJava学习").subscribe(new Subscriber<String>() {

			@Override
			public void onCompleted() {
				System.out.println("onCompleted()");
			}

			@Override
			public void onError(Throwable arg0) {
				System.out.println("onError():" + arg0);
			}

			@Override
			public void onNext(String arg0) {
				System.out.println("onNext():" + arg0);
			}
		});
	}

	private static void from() {
		// 1: 数组、
		// 2:列表
		// 3:Iterable
		// 4:Future
		// 5:Future,Scheduler
		// 6:Future,timout,timeUnit
		Integer[] a = new Integer[] { 1, 2, 3, 4, 5, 6, 7 };
		// 支持2
		ArrayList<Integer> items = new ArrayList<Integer>();
		items.add(1);
		items.add(2);
		items.add(3);
		items.add(4);
		items.add(5);
		items.add(6);
		Observable.from(items).subscribe(new Subscriber<Integer>() {

			@Override
			public void onCompleted() {
				System.out.println("onCompleted()");
			}

			@Override
			public void onError(Throwable arg0) {
				System.out.println("onError():" + arg0);
			}

			@Override
			public void onNext(Integer arg0) {
				System.out.println("onNext():" + arg0);
			}
		});
	}

	private static String valuestr;

	private static void defer() {
		// Observable observable = Observable.just(valuestr);

		Observable observable = Observable.defer(new Func0<Observable<String>>() {

			@Override
			public Observable<String> call() {
				return Observable.just(valuestr);
			}
		});

		valuestr = "中华人民共和国RxJava学习";

		observable.subscribe(new Subscriber<String>() {

			@Override
			public void onCompleted() {
				System.out.println("onCompleted()");
			}

			@Override
			public void onError(Throwable arg0) {
				System.out.println("onError():" + arg0);
			}

			@Override
			public void onNext(String arg0) {
				System.out.println("onNext():" + arg0);
			}
		});
	}

	private static void empty() {
		Observable.empty().subscribe(new Subscriber() {

			@Override
			public void onCompleted() {
				System.out.println("onCompleted()");
			}

			@Override
			public void onError(Throwable arg0) {
				System.out.println("onError():" + arg0);
			}

			@Override
			public void onNext(Object arg0) {

				System.out.println("onNext()");
			}
		});
	}

	private static void never() {
		Observable.never().subscribe(new Subscriber() {

			@Override
			public void onCompleted() {
				System.out.println("onCompleted()");
			}

			@Override
			public void onError(Throwable arg0) {
				System.out.println("onError():" + arg0);
			}

			@Override
			public void onNext(Object arg0) {

				System.out.println("onNext()");
			}
		});
	}

	private static void throwtest() {
		Observable.error(new NullPointerException()).subscribe(new Subscriber() {

			@Override
			public void onCompleted() {
				System.out.println("onCompleted()");
			}

			@Override
			public void onError(Throwable arg0) {
				System.out.println("onError():" + arg0);
			}

			@Override
			public void onNext(Object arg0) {

				System.out.println("onNext()");
			}
		});
	}
	
	private static void interval(){
		Observable.interval(1000,TimeUnit.MICROSECONDS).subscribe(new Subscriber() {

			@Override
			public void onCompleted() {
				System.out.println("onCompleted()");
			}

			@Override
			public void onError(Throwable arg0) {
				System.out.println("onError():" + arg0);
			}

			@Override
			public void onNext(Object arg0) {

				System.out.println("onNext()");
			}
		});
	}
	
	private static void range(){
		Observable observable = Observable.range(1, 5);
		observable.subscribe(new Subscriber<Integer>() {

			@Override
			public void onCompleted() {
				System.out.println("onCompleted()");
			}

			@Override
			public void onError(Throwable arg0) {
				System.out.println("onError():" + arg0);
			}

			@Override
			public void onNext(Integer arg0) {
				System.out.println("onNext()" + arg0);
			}
		});
	}
	
	private static void repeat(){
		Observable observable = Observable.range(1, 5).repeat(2);
		observable.subscribe(new Subscriber<Integer>() {

			@Override
			public void onCompleted() {
				System.out.println("onCompleted()");
			}

			@Override
			public void onError(Throwable arg0) {
				System.out.println("onError():" + arg0);
			}

			@Override
			public void onNext(Integer arg0) {
				System.out.println("onNext()" + arg0);
			}
		});
	}
	

	private static void helloworld() {
		// s1.创建被观察者
		Observable myObservable = Observable.create(new OnSubscribe<String>() {

			@Override
			public void call(Subscriber<? super String> subscriber) {
				subscriber.onNext("hello world!!!");
				// subscriber.onCompleted();
				throw new NullPointerException();
			}
		});

		// s2.创建观察者
		Subscriber subscriber = new Subscriber<String>() {

			@Override
			public void onCompleted() {
				System.out.println("onCompleted()");
			}

			@Override
			public void onError(Throwable arg0) {
				System.out.println("onError()");
			}

			@Override
			public void onNext(String arg0) {
				System.out.println("onNext():" + arg0);
			}

		};

		// s3.订阅事件
		myObservable.subscribe(subscriber);
	}

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值