@@ -1294,6 +1294,28 @@ public static <K, T, R> Observable<GroupedObservable<K, R>> groupBy(Observable<T
12941294 return create (OperationGroupBy .groupBy (source , keySelector , elementSelector ));
12951295 }
12961296
1297+ @ SuppressWarnings ("rawtypes" )
1298+ public static <K , T , R > Observable <GroupedObservable <K , R >> groupBy (Observable <T > source , final Object keySelector , final Object elementSelector ) {
1299+ final FuncN _k = Functions .from (keySelector );
1300+ final FuncN _e = Functions .from (elementSelector );
1301+
1302+ return groupBy (source , new Func1 <T , K >() {
1303+
1304+ @ SuppressWarnings ("unchecked" )
1305+ @ Override
1306+ public K call (T t1 ) {
1307+ return (K ) _k .call (t1 );
1308+ }
1309+ }, new Func1 <T , R >() {
1310+
1311+ @ SuppressWarnings ("unchecked" )
1312+ @ Override
1313+ public R call (T t1 ) {
1314+ return (R ) _e .call (t1 );
1315+ }
1316+ });
1317+ }
1318+
12971319 /**
12981320 * Groups the items emitted by an Observable according to a specified criteria, and emits these
12991321 * grouped items as Observables, one Observable per group.
@@ -1314,6 +1336,20 @@ public static <K, T, R> Observable<GroupedObservable<K, R>> groupBy(Observable<T
13141336 public static <K , T > Observable <GroupedObservable <K , T >> groupBy (Observable <T > source , final Func1 <T , K > keySelector ) {
13151337 return create (OperationGroupBy .groupBy (source , keySelector ));
13161338 }
1339+
1340+ @ SuppressWarnings ("rawtypes" )
1341+ public static <K , T > Observable <GroupedObservable <K , T >> groupBy (Observable <T > source , final Object keySelector ) {
1342+ final FuncN _k = Functions .from (keySelector );
1343+
1344+ return groupBy (source , new Func1 <T , K >() {
1345+
1346+ @ SuppressWarnings ("unchecked" )
1347+ @ Override
1348+ public K call (T t1 ) {
1349+ return (K ) _k .call (t1 );
1350+ }
1351+ });
1352+ }
13171353
13181354 /**
13191355 * This behaves like <code>merge</code> except that if any of the merged Observables notify
@@ -3560,6 +3596,10 @@ public Observable<T> startWith(T... values) {
35603596 public <K , R > Observable <GroupedObservable <K , R >> groupBy (final Func1 <T , K > keySelector , final Func1 <T , R > elementSelector ) {
35613597 return groupBy (this , keySelector , elementSelector );
35623598 }
3599+
3600+ public <K , R > Observable <GroupedObservable <K , R >> groupBy (final Object keySelector , final Object elementSelector ) {
3601+ return groupBy (this , keySelector , elementSelector );
3602+ }
35633603
35643604 /**
35653605 * Groups the items emitted by an Observable according to a specified criteria, and emits these
@@ -3578,6 +3618,10 @@ public <K, R> Observable<GroupedObservable<K, R>> groupBy(final Func1<T, K> keyS
35783618 public <K > Observable <GroupedObservable <K , T >> groupBy (final Func1 <T , K > keySelector ) {
35793619 return groupBy (this , keySelector );
35803620 }
3621+
3622+ public <K > Observable <GroupedObservable <K , T >> groupBy (final Object keySelector ) {
3623+ return groupBy (this , keySelector );
3624+ }
35813625
35823626 /**
35833627 * Converts an Observable into a BlockingObservable (an Observable with blocking operators).
0 commit comments