RxJava - PublishSubject
PublishSubject phát các mục cho Người quan sát hiện đã đăng ký và các sự kiện đầu cuối cho Người quan sát hiện tại hoặc muộn.
Khai báo lớp học
Sau đây là khai báo cho io.reactivex.subjects.PublishSubject<T> lớp học -
public final class PublishSubject<T>
extends Subject<T>
Ví dụ về PublishSubject
Tạo chương trình Java sau bằng bất kỳ trình soạn thảo nào bạn chọn trong C: \> RxJava.
ObservableTester.java
import io.reactivex.subjects.PublishSubject;
public class ObservableTester {
public static void main(String[] args) {
final StringBuilder result1 = new StringBuilder();
final StringBuilder result2 = new StringBuilder();
PublishSubject<String> subject = PublishSubject.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 d only
//as subscribed after c item emitted.
System.out.println(result2);
}
}
Xác minh kết quả
Biên dịch lớp bằng cách sử dụng javac trình biên dịch như sau -
C:\RxJava>javac ObservableTester.java
Bây giờ hãy chạy ObservableTester như sau:
C:\RxJava>java ObservableTester
Nó sẽ tạo ra kết quả sau:
abcd
d