Une interfacePublisherest un fournisseur qui fournit un nombre illimité d'éléments commandés à publier en fonction de la demande reçue de son(ses)Abonné(s). Séquence d'appel possible de méthodes surPublisher.subscribe(Subscriber), en réponse à l'appel deSubscriber. Cela signifie la méthodeonSubscribe(), suivie d'un nombre illimité de méthodesonNext()(comme requis par leSubscriber), puis soit la méthodeonError()(en cas d'échec), soit la méthodeonError()(en cas d'échec) MéthodeonComplete()(quand plus aucun élément n'est disponible, tant que
Subscriptionpublic interface Publisher{ public void subscribe(Subscriber super T> s); }
import java.util.concurrent.*; import java.util.*; import java.util.stream.*; class SimplePublisher implements Flow.Publisher{ private final Iterator iterator; SimplePublisher(int count) { this.iterator = IntStream.rangeClosed(1, count).iterator(); } @Override public void subscribe(Flow.Subscriber super Integer> subscriber) { iterator.forEachRemaining(subscriber::onNext); subscriber.onComplete(); } } public class SimplePublisherImplTest { public static void main(String args[]) { new SimplePublisher(10).subscribe(new Flow.Subscriber<>() { @Override public void onSubscribe(Flow.Subscription subscription) { } @Override public void onNext(Integer item) { System.out.println("item = [" + item + "]"); } @Override public void onError(Throwable throwable) { } @Override public void onComplete() { System.out.println("complete"); } }); } }
item = [1] item = [2] item = [3] item = [4] item = [5] item = [6] item = [7] item = [8] item = [9] item = [10] complete
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!