From 5bba1c9225cf282805d03031a46669b5020186d0 Mon Sep 17 00:00:00 2001 From: zsxwing Date: Sun, 19 Oct 2014 22:47:41 +0800 Subject: [PATCH] Change Transformer to Func1, Observable> --- src/main/java/rx/Observable.java | 6 ++---- src/test/java/rx/CovarianceTest.java | 10 +++++----- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/src/main/java/rx/Observable.java b/src/main/java/rx/Observable.java index 255d1af38d..53492f73fb 100644 --- a/src/main/java/rx/Observable.java +++ b/src/main/java/rx/Observable.java @@ -174,17 +174,15 @@ public void call(Subscriber o) { * @return the source Observable, transformed by the transformer function * @see RxJava wiki: Implementing Your Own Operators */ - @SuppressWarnings("unchecked") public Observable compose(Transformer transformer) { - // Casting to Observable is type-safe because we know Observable is covariant. - return (Observable) ((Transformer) transformer).call(this); + return ((Transformer) transformer).call(this); } /** * Transformer function used by {@link #compose}. * @warn more complete description needed */ - public static interface Transformer extends Func1, Observable> { + public static interface Transformer extends Func1, Observable> { // cover for generics insanity } diff --git a/src/test/java/rx/CovarianceTest.java b/src/test/java/rx/CovarianceTest.java index b269751bec..8b56fa0c49 100644 --- a/src/test/java/rx/CovarianceTest.java +++ b/src/test/java/rx/CovarianceTest.java @@ -85,7 +85,7 @@ public Observable call(GroupedObservable, Movie> return g.compose(new Transformer() { @Override - public Observable call(Observable m) { + public Observable call(Observable m) { return m.concatWith(Observable.just(new ActionMovie())); } @@ -112,7 +112,7 @@ public void testCovarianceOfCompose() { Observable movie2 = movie.compose(new Transformer() { @Override - public Observable call(Observable t1) { + public Observable call(Observable t1) { return Observable.just(new Movie()); } @@ -124,7 +124,7 @@ public void testCovarianceOfCompose2() { Observable movie = Observable. just(new HorrorMovie()); Observable movie2 = movie.compose(new Transformer() { @Override - public Observable call(Observable t1) { + public Observable call(Observable t1) { return Observable.just(new HorrorMovie()); } }); @@ -135,7 +135,7 @@ public void testCovarianceOfCompose3() { Observable movie = Observable.just(new HorrorMovie()); Observable movie2 = movie.compose(new Transformer() { @Override - public Observable call(Observable t1) { + public Observable call(Observable t1) { return Observable.just(new HorrorMovie()).map(new Func1() { @Override @@ -152,7 +152,7 @@ public void testCovarianceOfCompose4() { Observable movie = Observable.just(new HorrorMovie()); Observable movie2 = movie.compose(new Transformer() { @Override - public Observable call(Observable t1) { + public Observable call(Observable t1) { return t1.map(new Func1() { @Override