Doc says
Conceptually, this combination of Single and Completable, which means capturing a radiation circuit, where there may be 0 or 1 element or an error signaled by some reactive source.
But I'm not sure what that really means. It seems to be java8 Optional.
The following two codes have the same result, but I don’t know what can do Maybe, but Optionalcannot (or cumbersome).
@Test
public void testMaybe1() {
Observable.just(3, 2, 1, 0, -1)
.map(i -> {
try {
int result = 6 / i;
return Maybe.just(result);
} catch (Exception e) {
return Maybe.empty();
}
})
.blockingForEach(maybe -> {
logger.info("result = {}", maybe.blockingGet());
}
);
}
@Test
public void testMaybe2() {
Observable.just(3, 2, 1, 0, -1)
.map(i -> {
try {
int result = 6 / i;
return Optional.of(result);
} catch (Exception e) {
return Optional.empty();
}
})
.blockingForEach(opt -> {
logger.info("result = {}", opt.orElse(null));
}
);
}
The results are the same:
result = 2
result = 3
result = 6
result = null
result = -6
In rxJava1, my API used to return Observable<Optional<T>>, is it a bad smell? Should I upgrade to Observable<Maybe<T>>?
source
share