RxJava Tutorial on RxJava ReplaySubject

replaysubject replays events/items to current and late observers.

class declaration

following is the declaration for io.reactivex.subjects.replaysubject<t> class −

public final class replaysubject<t>
extends subject<t>

replaysubject example

create the following java program using any editor of your choice in, say, c:\> rxjava.

observabletester.java

import io.reactivex.subjects.replaysubject;
public class observabletester  {
   public static void main(string[] args) {   
      final stringbuilder result1 = new stringbuilder();
      final stringbuilder result2 = new stringbuilder();         

      replaysubject<string> subject = replaysubject.create(); 
      subject.subscribe(value -> result1.append(value) ); 
      subject.onnext("a"); 
      subject.onnext("b"); 
      subject.onnext("c"); 
      subject.subscribe(value -> result2.append(value)); 
      subject.onnext("d"); 
      subject.oncomplete();

      //output will be abcd
      system.out.println(result1);
      //output will be abcd being replaysubject
      //as replaysubject emits all the items
      system.out.println(result2);
   }
}

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 −

abcd
abcd