io.reactivex.Observable.ofType()方法的使用及代码示例

x33g5p2x  于2022-01-25 转载在 其他  
字(8.2k)|赞(0)|评价(0)|浏览(207)

本文整理了Java中io.reactivex.Observable.ofType()方法的一些代码示例,展示了Observable.ofType()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Observable.ofType()方法的具体详情如下:
包路径:io.reactivex.Observable
类名称:Observable
方法名:ofType

Observable.ofType介绍

[英]Filters the items emitted by an ObservableSource, only emitting those of the specified type.

Scheduler: ofType does not operate by default on a particular Scheduler.
[中]过滤由ObservableSource发出的项,仅发出指定类型的项。
调度器:默认情况下,ofType不会在特定的调度器上运行。

代码示例

代码示例来源:origin: ReactiveX/RxJava

  1. @Test(expected = NullPointerException.class)
  2. public void ofTypeNull() {
  3. just1.ofType(null);
  4. }

代码示例来源:origin: ReactiveX/RxJava

  1. @Test
  2. public void testOfType() {
  3. Observable<String> o = Observable.just(1, "abc", false, 2L).ofType(String.class);
  4. Observer<Object> observer = TestHelper.mockObserver();
  5. o.subscribe(observer);
  6. verify(observer, never()).onNext(1);
  7. verify(observer, times(1)).onNext("abc");
  8. verify(observer, never()).onNext(false);
  9. verify(observer, never()).onNext(2L);
  10. verify(observer, never()).onError(
  11. any(Throwable.class));
  12. verify(observer, times(1)).onComplete();
  13. }

代码示例来源:origin: ReactiveX/RxJava

  1. @Test
  2. public void testOfTypeWithPolymorphism() {
  3. ArrayList<Integer> l1 = new ArrayList<Integer>();
  4. l1.add(1);
  5. LinkedList<Integer> l2 = new LinkedList<Integer>();
  6. l2.add(2);
  7. @SuppressWarnings("rawtypes")
  8. Observable<List> o = Observable.<Object> just(l1, l2, "123").ofType(List.class);
  9. Observer<Object> observer = TestHelper.mockObserver();
  10. o.subscribe(observer);
  11. verify(observer, times(1)).onNext(l1);
  12. verify(observer, times(1)).onNext(l2);
  13. verify(observer, never()).onNext("123");
  14. verify(observer, never()).onError(
  15. any(Throwable.class));
  16. verify(observer, times(1)).onComplete();
  17. }

代码示例来源:origin: adgvcxz/Dribbble-MVVM

  1. @BindingAdapter({"android:layout_marginRight"})
  2. public static void setMarginRight(View view, int right) {
  3. Observable.just(view.getLayoutParams()).ofType(ViewGroup.MarginLayoutParams.class)
  4. .filter(marginLayoutParams -> marginLayoutParams.rightMargin != right).subscribe(marginLayoutParams -> {
  5. marginLayoutParams.rightMargin = right;
  6. view.setLayoutParams(marginLayoutParams);
  7. });
  8. }

代码示例来源:origin: adgvcxz/Dribbble-MVVM

  1. @BindingAdapter({"android:layout_marginLeft"})
  2. public static void setMarginLeft(View view, int left) {
  3. Observable.just(view.getLayoutParams()).ofType(ViewGroup.MarginLayoutParams.class)
  4. .filter(marginLayoutParams -> marginLayoutParams.leftMargin != left).subscribe(marginLayoutParams -> {
  5. marginLayoutParams.leftMargin = left;
  6. view.setLayoutParams(marginLayoutParams);
  7. });
  8. }

代码示例来源:origin: adgvcxz/Dribbble-MVVM

  1. @BindingAdapter({"android:layout_marginBottom"})
  2. public static void setMarginBottom(View view, int bottom) {
  3. Observable.just(view.getLayoutParams()).ofType(ViewGroup.MarginLayoutParams.class)
  4. .filter(marginLayoutParams -> marginLayoutParams.bottomMargin != bottom).subscribe(marginLayoutParams -> {
  5. marginLayoutParams.bottomMargin = bottom;
  6. view.setLayoutParams(marginLayoutParams);
  7. });
  8. }

代码示例来源:origin: adgvcxz/Dribbble-MVVM

  1. @BindingAdapter({"fragment"})
  2. public static void addFragment(ViewGroup viewGroup, BaseFragmentViewModel model) {
  3. Observable.just(viewGroup.getContext()).ofType(FragmentActivity.class).subscribe(fragmentActivity -> {
  4. BaseViewModelFragment fragment = BaseViewModelFragment.newInstance(model);
  5. fragmentActivity.getSupportFragmentManager().beginTransaction().replace(viewGroup.getId(), fragment).commit();
  6. });
  7. }

代码示例来源:origin: adgvcxz/Dribbble-MVVM

  1. @BindingAdapter(value = {"osVersionMarginTop"}, requireAll = false)
  2. public static void setStatusBarMarginTop(View view, int osVersion) {
  3. Observable.just(osVersion).filter(integer -> osVersion > Build.VERSION_CODES.KITKAT)
  4. .map(integer -> view.getLayoutParams())
  5. .ofType(ViewGroup.MarginLayoutParams.class)
  6. .subscribe(marginLayoutParams -> {
  7. marginLayoutParams.topMargin = Util.getStatusBarHeight(view.getContext());
  8. view.setLayoutParams(marginLayoutParams);
  9. });
  10. }

代码示例来源:origin: com.b2international.snowowl/com.b2international.snowowl.datastore.server

  1. public ReviewManagerImpl(final InternalRepository repository, final ReviewConfiguration config) {
  2. this.store = repository.getIndex();
  3. this.revisionIndex = repository.getRevisionIndex();
  4. this.keepCurrentMillis = TimeUnit.MINUTES.toMillis(config.getKeepCurrentMins());
  5. this.keepOtherMillis = TimeUnit.MINUTES.toMillis(config.getKeepOtherMins());
  6. // Check every minute if there's something to remove
  7. Holder.CLEANUP_TIMER.schedule(cleanupTask, CLEANUP_INTERVAL, CLEANUP_INTERVAL);
  8. notificationSubscription = repository.notifications()
  9. .ofType(BranchChangedEvent.class)
  10. .subscribe(this::onBranchChange);
  11. }

代码示例来源:origin: spotify/mobius

  1. @Override
  2. public Observable<E> apply(Observable<F> effects) {
  3. return effects
  4. .ofType(effectClass)
  5. .compose(effectHandler)
  6. .doOnError(onErrorFunction.apply(effectHandler));
  7. }
  8. });

代码示例来源:origin: HIFILEO/ReactiveArchitecture

  1. /**
  2. * Process Filtering for {@link ScrollResult}, {@link RestoreResult}, {@link FilterAction}.
  3. * @param object - object to apply filtering on.
  4. * @return {@link Observable} of {@link Result}
  5. */
  6. private Observable<Result> processFiltering(Object object) {
  7. return Observable.just(object)
  8. .publish(objectObservable -> Observable.merge(
  9. objectObservable.ofType(FilterAction.class)
  10. .compose(filterTransformer.getTransformFilterActionToFilterResult()),
  11. objectObservable.ofType(ScrollResult.class)
  12. .compose(filterTransformer.getTransformFilterScrollResult()),
  13. objectObservable.ofType(RestoreResult.class)
  14. .compose(filterTransformer.getTransformFilterRestoreResult())
  15. ));
  16. }

代码示例来源:origin: adgvcxz/Dribbble-MVVM

  1. @BindingAdapter(value = {"loadMore", "isLoadAll"}, requireAll = false)
  2. public static void setLoadMore(RecyclerView recyclerView, boolean loadMore, boolean isLoadAll) {
  3. Observable.just(recyclerView.getAdapter()).ofType(BaseRecyclerViewAdapter.class)
  4. .filter(adapter -> adapter.isLoadMore() != loadMore || adapter.isLoadAll() != isLoadAll)
  5. .subscribe(adapter -> {
  6. adapter.setLoadMore(loadMore);
  7. adapter.setLoadAll(isLoadAll);
  8. });
  9. }

代码示例来源:origin: HIFILEO/ReactiveArchitecture

  1. /**
  2. * Setup the transformers used by this {@link NowPlayingViewModel}.
  3. */
  4. @MainThread
  5. private void setupTransformers() {
  6. final ObservableTransformer<ScrollEvent, ScrollAction> scrollTransformer =
  7. upstream -> upstream.flatMap((Function<ScrollEvent, ObservableSource<ScrollAction>>) scrollEvent -> {
  8. return Observable.just(new ScrollAction(scrollEvent.getPageNumber()));
  9. });
  10. final ObservableTransformer<RestoreEvent, RestoreAction> restoreTransformer =
  11. upstream -> upstream.flatMap(restoreEvent -> Observable.just(new RestoreAction(restoreEvent.getPageNumber())));
  12. final ObservableTransformer<FilterEvent, FilterAction> filterTransformer =
  13. upstream -> upstream.flatMap(filterEvent -> Observable.just(new FilterAction(filterEvent.isFilterOn())));
  14. transformEventsIntoActions = upstream -> upstream.publish(uiEventObservable -> Observable.merge(
  15. uiEventObservable.ofType(ScrollEvent.class).compose(scrollTransformer),
  16. uiEventObservable.ofType(RestoreEvent.class).compose(restoreTransformer),
  17. uiEventObservable.ofType(FilterEvent.class).compose(filterTransformer)
  18. ));
  19. }

代码示例来源:origin: akarnokd/akarnokd-misc

  1. @Test
  2. public void test1() {
  3. Observable<Object> mixedSource = Observable.<Object>just("a", 1, "b", 2, "c", 3)
  4. .doOnSubscribe(s -> System.out.println("Subscribed!"));
  5. mixedSource.compose(f ->
  6. Observable.merge(
  7. f.ofType(Integer.class).compose(g -> g.map(v -> v + 1)),
  8. f.ofType(String.class).compose(g -> g.map(v -> v.toUpperCase()))
  9. )
  10. )
  11. .subscribe(System.out::println);
  12. }

代码示例来源:origin: adgvcxz/Dribbble-MVVM

  1. }).delay(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP ? 120 : 200, TimeUnit.MILLISECONDS).ofType(ViewGroup.class).flatMap(viewGroup -> Observable.range(0, viewGroup.getChildCount())
  2. .map(viewGroup::getChildAt)
  3. ).scan(new Pair<Integer, View>(0, null), (integerViewPair, view2) -> new Pair<>(integerViewPair.first + 50, view2))

代码示例来源:origin: akarnokd/akarnokd-misc

  1. @Test
  2. public void test2() {
  3. Observable<Object> mixedSource = Observable.<Object>just("a", 1, "b", 2, "c", 3)
  4. .doOnSubscribe(s -> System.out.println("Subscribed!"));
  5. mixedSource.publish(f ->
  6. Observable.merge(
  7. f.ofType(Integer.class).compose(g -> g.map(v -> v + 1)),
  8. f.ofType(String.class).compose(g -> g.map(v -> v.toUpperCase()))
  9. )
  10. )
  11. .subscribe(System.out::println);
  12. }
  13. }

相关文章

Observable类方法