the compositedisposable class represents a container which can hold multiple disposable and offers o(1) complexity of adding and removing disposables.
class declaration
following is the declaration for io.reactivex.disposables.compositedisposable class −
public final class compositedisposable extends object implements disposable, io.reactivex.internal.disposables.disposablecontainer
compositedisposable example
create the following java program using any editor of your choice in, say, c:\> rxjava.
observabletester.java
import io.reactivex.maybe; import io.reactivex.single; import io.reactivex.disposables.compositedisposable; import io.reactivex.disposables.disposable; import io.reactivex.observers.disposablemaybeobserver; import io.reactivex.observers.disposablesingleobserver; import io.reactivex.schedulers.schedulers; import java.util.concurrent.timeunit; public class observabletester { public static void main(string[] args) throws interruptedexception { compositedisposable compositedisposable = new compositedisposable(); //create an single observer disposable disposablesingle = single.just("hello world") .delay(2, timeunit.seconds, schedulers.io()) .subscribewith( new disposablesingleobserver<string>() { @override public void onerror(throwable e) { e.printstacktrace(); } @override public void onsuccess(string value) { system.out.println(value); } }); //create an observer disposable disposablemaybe = maybe.just("hi") .delay(2, timeunit.seconds, schedulers.io()) .subscribewith(new disposablemaybeobserver<string>() { @override public void onerror(throwable e) { e.printstacktrace(); } @override public void onsuccess(string value) { system.out.println(value); } @override public void oncomplete() { system.out.println("done!"); } }); thread.sleep(3000); compositedisposable.add(disposablesingle); compositedisposable.add(disposablemaybe); //start observing compositedisposable.dispose(); } }
verify the result
compile the class using javac compiler as follows −
c:\rxjava>javac observabletester.java
now run the observabletester as follows −
c:\rxjava>java observabletester
it should produce the following output −
hello world hi