当前位置:网站首页 > Java基础 > 正文

java如何深入基础



RxJava在Android开发者中变得越来越受欢迎。唯一的问题是不容易开始,尤其是大多数人以前使用命令编程语言。但一旦你明白了,你会发现RxJava真的很棒。 这只是为了帮助你了解RxJava,整个系列有四篇文章文章,希望看完这四篇文章,能理解RxJava背后的想法,喜欢RxJava。

基础

RxJava最核心的两件事是Observables(观察者,事件源)和Subscribers(观察者)。Observables发布了一系列事件,Subscribers处理了这些事件。这里的事件可以是任何你感兴趣的东西(触摸事件,web接口调用返回的数据。。。) Observable可以发送零或多个事件,知道结束或错误。每次发生事件时,都会调用Subscriber的onnnext方法,最后调用Subscriber.onNext()或Subscriber.onError()结束。

Rxjava似乎想设计模式中的观察者模式,但有一个明显的区别,那就是如果一个observerble没有任何Subscriber,那么observable就不会发生任何事件。

Hello World

创建Observable对象非常简单,直接调用Observable.create就够了

[java] view plain copy

  

[java] view plain copy

  

[java] view plain copy

  

代码更简洁

你觉得只是为了打印helolo吗? world写这么多代码太罗嗦了?我主要用这种罗嗦的写法来展示RxJava背后的原理。RxJava实际上提供了许多方便的函数来帮助我们减少代码。

首先,让我们来看看如何简化Observable对象的创建过程。RxJava内置了许多简化Observable对象创建的函数,如Observable.just是用来创建Observable对象,它只发送一个事件,创建Observable对象的代码可以简化为一行

[java] view plain copy

  

[java] view plain copy

  

[java] view plain copy

  

我们不在乎oneror和oncomplete,所以我们只需要第一个参数

[java] view plain copy

  

上面的代码最终可以写成这样

[java] view plain copy

  

使用java8lambda可以使代码更加简洁

[java] view plain copy

  

强烈推荐Android开发使用

gradle插件retrolambda,这样您就可以在您的代码中使用lambda。

变换

让我们做一些更有趣的事情!

例如,我想在helloo中 在world中加上我的签名,你可能会想到修改observable对象:

[java] view plain copy

  

如果你能改变observable对象,那当然是可以的,但是如果你不能修改observable对象呢?例如,observable对象由第三方库提供?例如,我的observable对象是由多个subscriber订阅的,但我只想修改订阅者?

那么如何在Subscriber中修改事件呢?例如,以下代码:

[java] view plain copy

  

这种方式还是不尽如人意,因为我希望我的Subscribers越轻越好,因为我可能会在mainthread中运行Subscriber。此外,根据响应函数编程的概念,Subscribers应该做的是“响应”,而不是修改Observable发生的事件。如果我能在某些中间步骤中对待“如果我能在某些中间步骤中对待”Hello World!变换是不是很酷?

操作符(Operators)

操作符是为了解决Observable对象转换的问题。操作符用于修改Observable与最终Subscriber之间发生的事件。RxJava提供了许多有用的操作符。

例如,map操作符是用来将一个事件转换为另一个事件的。

[java] view plain copy

  

使用lambda可以简化为

[java] view plain copy

  

高级map操作符

map操作符更有趣的是,它不需要返回observable对象返回的类型。您可以使用map操作符返回发送新数据类型的observable对象。

例如,在上面的例子中,subscriber并不关心返回的字符串,而是希望字符串的hash值

[java] view plain java如何深入基础 copy

  

[java] view plain copy

  

[java] view plain copy

  

不服?

你认为我们的例子太简单了,不足以说服你吗?您需要了解以下两点:

1.Observable和Subscriber可以做任何事情

Observable可以是数据库查询,Subscriber用于显示查询结果;Observable可以是屏幕上的点击事件,Subscriber用于响应点击事件;Observable可以是网络请求,Subscribler用于显示请求结果。

2.Observable和Subscriber是独立于中间的变换过程。

可以在observable和subscriber之间添加或减少任何数量的map。整个系统高度可组合,操作数据是一个非常简单的过程。

版权声明


相关文章:

  • java方法基础讲解2025-04-19 18:58:02
  • java必备基础词汇2025-04-19 18:58:02
  • java 基础能力2025-04-19 18:58:02
  • java基础型数据类型2025-04-19 18:58:02
  • java基础重要点2025-04-19 18:58:02
  • 基础java培训那好2025-04-19 18:58:02
  • java 最基础2025-04-19 18:58:02
  • java核心技术卷1 基础知识 92025-04-19 18:58:02
  • java基础考试试题及答案2025-04-19 18:58:02
  • java基础教程14章2025-04-19 18:58:02