io.reactivex.Maybe#map ( )源码实例Demo

下面列出了io.reactivex.Maybe#map ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: vertx-rx   文件: MaybeUnmarshaller.java
@Override
public MaybeSource<T> apply(@NonNull Maybe<B> upstream) {
  Maybe<Buffer> unwrapped = upstream.map(unwrap::apply);
  Maybe<T> unmarshalled = unwrapped.concatMap(buffer -> {
    if (buffer.length() > 0) {
      try {
        T obj;
        if (mapper != null) {
          JsonParser parser = mapper.getFactory().createParser(buffer.getBytes());
          obj = nonNull(mappedType) ? mapper.readValue(parser, mappedType) :
            mapper.readValue(parser, mappedTypeRef);
        } else {
          obj = getT(buffer, mappedType, mappedTypeRef);
        }
        return Maybe.just(obj);
      } catch (Exception e) {
        return Maybe.error(e);
      }
    } else {
      return Maybe.empty();
    }
  });
  return unmarshalled;
}
 
@PostMapping("/rxjava2-maybe")
public Maybe<Person> transformRxJava2Maybe(@RequestBody Maybe<Person> personFuture) {
	return personFuture.map(person -> new Person(person.getName().toUpperCase()));
}
 
@PostMapping("/rxjava2-maybe")
public Maybe<Person> transformRxJava2Maybe(@RequestBody Maybe<Person> personFuture) {
	return personFuture.map(person -> new Person(person.getName().toUpperCase()));
}