Skip to content

Commit 3501fe7

Browse files
Simplify reduce/scan generics
Updates based on discussion at #369 (comment)
1 parent 89f3218 commit 3501fe7

File tree

2 files changed

+10
-10
lines changed

2 files changed

+10
-10
lines changed

rxjava-core/src/main/java/rx/Observable.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3193,7 +3193,7 @@ public Observable<T> aggregate(Func2<T, T, T> accumulator) {
31933193
* @see <a href="http://msdn.microsoft.com/en-us/library/hh229154(v%3Dvs.103).aspx">MSDN: Observable.Aggregate</a>
31943194
* @see <a href="http://en.wikipedia.org/wiki/Fold_(higher-order_function)">Wikipedia: Fold (higher-order function)</a>
31953195
*/
3196-
public <R> Observable<R> reduce(R initialValue, Func2<? super R, ? super T, ? extends R> accumulator) {
3196+
public <R> Observable<R> reduce(R initialValue, Func2<R, ? super T, R> accumulator) {
31973197
return create(OperationScan.scan(this, initialValue, accumulator)).takeLast(1);
31983198
}
31993199

@@ -3204,7 +3204,7 @@ public <R> Observable<R> reduce(R initialValue, Func2<? super R, ? super T, ? ex
32043204
*
32053205
* @see #reduce(Object, Func2)
32063206
*/
3207-
public <R> Observable<R> aggregate(R initialValue, Func2<? super R, ? super T, ? extends R> accumulator) {
3207+
public <R> Observable<R> aggregate(R initialValue, Func2<R, ? super T, R> accumulator) {
32083208
return reduce(initialValue, accumulator);
32093209
}
32103210

@@ -3288,7 +3288,7 @@ public Observable<T> sample(long period, TimeUnit unit, Scheduler scheduler) {
32883288
* @return an Observable that emits the results of each call to the accumulator function
32893289
* @see <a href="http://msdn.microsoft.com/en-us/library/hh211665(v%3Dvs.103).aspx">MSDN: Observable.Scan</a>
32903290
*/
3291-
public <R> Observable<R> scan(R initialValue, Func2<? super R, ? super T, ? extends R> accumulator) {
3291+
public <R> Observable<R> scan(R initialValue, Func2<R, ? super T, R> accumulator) {
32923292
return create(OperationScan.scan(this, initialValue, accumulator));
32933293
}
32943294

rxjava-core/src/main/java/rx/operators/OperationScan.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ public final class OperationScan {
5555
* @return An observable sequence whose elements are the result of accumulating the output from the list of Observables.
5656
* @see <a href="http://msdn.microsoft.com/en-us/library/hh212007%28v=vs.103%29.aspx">Observable.Scan(TSource, TAccumulate) Method (IObservable(TSource), TAccumulate, Func(TAccumulate, TSource, TAccumulate))</a>
5757
*/
58-
public static <T, R> OnSubscribeFunc<R> scan(Observable<? extends T> sequence, R initialValue, Func2<? super R, ? super T, ? extends R> accumulator) {
58+
public static <T, R> OnSubscribeFunc<R> scan(Observable<? extends T> sequence, R initialValue, Func2<R, ? super T, R> accumulator) {
5959
return new Accumulator<T, R>(sequence, initialValue, accumulator);
6060
}
6161

@@ -76,11 +76,11 @@ public static <T> OnSubscribeFunc<T> scan(Observable<? extends T> sequence, Func
7676

7777
private static class AccuWithoutInitialValue<T> implements OnSubscribeFunc<T> {
7878
private final Observable<? extends T> sequence;
79-
private final Func2<? super T, ? super T, ? extends T> accumulatorFunction;
79+
private final Func2<T, T, T> accumulatorFunction;
8080

8181
private AccumulatingObserver<T, T> accumulatingObserver;
8282

83-
private AccuWithoutInitialValue(Observable<? extends T> sequence, Func2<? super T, ? super T, ? extends T> accumulator) {
83+
private AccuWithoutInitialValue(Observable<? extends T> sequence, Func2<T, T, T> accumulator) {
8484
this.sequence = sequence;
8585
this.accumulatorFunction = accumulator;
8686
}
@@ -116,9 +116,9 @@ public void onCompleted() {
116116
private static class Accumulator<T, R> implements OnSubscribeFunc<R> {
117117
private final Observable<? extends T> sequence;
118118
private final R initialValue;
119-
private final Func2<? super R, ? super T, ? extends R> accumulatorFunction;
119+
private final Func2<R, ? super T, R> accumulatorFunction;
120120

121-
private Accumulator(Observable<? extends T> sequence, R initialValue, Func2<? super R, ? super T, ? extends R> accumulator) {
121+
private Accumulator(Observable<? extends T> sequence, R initialValue, Func2<R, ? super T, R> accumulator) {
122122
this.sequence = sequence;
123123
this.initialValue = initialValue;
124124
this.accumulatorFunction = accumulator;
@@ -133,11 +133,11 @@ public Subscription onSubscribe(final Observer<? super R> observer) {
133133

134134
private static class AccumulatingObserver<T, R> implements Observer<T> {
135135
private final Observer<? super R> observer;
136-
private final Func2<? super R, ? super T, ? extends R> accumulatorFunction;
136+
private final Func2<R, ? super T, R> accumulatorFunction;
137137

138138
private R acc;
139139

140-
private AccumulatingObserver(Observer<? super R> observer, R initialValue, Func2<? super R, ? super T, ? extends R> accumulator) {
140+
private AccumulatingObserver(Observer<? super R> observer, R initialValue, Func2<R, ? super T, R> accumulator) {
141141
this.observer = observer;
142142
this.accumulatorFunction = accumulator;
143143

0 commit comments

Comments
 (0)