2828 */
2929public class OperationMinMax {
3030
31- public static <T extends Comparable <T >> Observable <T > min (
31+ public static <T extends Comparable <? super T >> Observable <T > min (
3232 Observable <T > source ) {
3333 return minMax (source , -1L );
3434 }
3535
3636 public static <T > Observable <T > min (Observable <T > source ,
37- final Comparator <T > comparator ) {
37+ final Comparator <? super T > comparator ) {
3838 return minMax (source , comparator , -1L );
3939 }
4040
41- public static <T , R extends Comparable <R >> Observable <List <T >> minBy (
41+ public static <T , R extends Comparable <? super R >> Observable <List <T >> minBy (
4242 Observable <T > source , final Func1 <T , R > selector ) {
4343 return minMaxBy (source , selector , -1L );
4444 }
4545
4646 public static <T , R > Observable <List <T >> minBy (Observable <T > source ,
47- final Func1 <T , R > selector , final Comparator <R > comparator ) {
47+ final Func1 <T , R > selector , final Comparator <? super R > comparator ) {
4848 return minMaxBy (source , selector , comparator , -1L );
4949 }
5050
51- public static <T extends Comparable <T >> Observable <T > max (
51+ public static <T extends Comparable <? super T >> Observable <T > max (
5252 Observable <T > source ) {
5353 return minMax (source , 1L );
5454 }
5555
5656 public static <T > Observable <T > max (Observable <T > source ,
57- final Comparator <T > comparator ) {
57+ final Comparator <? super T > comparator ) {
5858 return minMax (source , comparator , 1L );
5959 }
6060
61- public static <T , R extends Comparable <R >> Observable <List <T >> maxBy (
61+ public static <T , R extends Comparable <? super R >> Observable <List <T >> maxBy (
6262 Observable <T > source , final Func1 <T , R > selector ) {
6363 return minMaxBy (source , selector , 1L );
6464 }
6565
6666 public static <T , R > Observable <List <T >> maxBy (Observable <T > source ,
67- final Func1 <T , R > selector , final Comparator <R > comparator ) {
67+ final Func1 <T , R > selector , final Comparator <? super R > comparator ) {
6868 return minMaxBy (source , selector , comparator , 1L );
6969 }
7070
71- private static <T extends Comparable <T >> Observable <T > minMax (
71+ private static <T extends Comparable <? super T >> Observable <T > minMax (
7272 Observable <T > source , final long flag ) {
7373 return source .reduce (new Func2 <T , T , T >() {
7474 @ Override
@@ -82,7 +82,7 @@ public T call(T acc, T value) {
8282 }
8383
8484 private static <T > Observable <T > minMax (Observable <T > source ,
85- final Comparator <T > comparator , final long flag ) {
85+ final Comparator <? super T > comparator , final long flag ) {
8686 return source .reduce (new Func2 <T , T , T >() {
8787 @ Override
8888 public T call (T acc , T value ) {
@@ -94,7 +94,7 @@ public T call(T acc, T value) {
9494 });
9595 }
9696
97- private static <T , R extends Comparable <R >> Observable <List <T >> minMaxBy (
97+ private static <T , R extends Comparable <? super R >> Observable <List <T >> minMaxBy (
9898 Observable <T > source , final Func1 <T , R > selector , final long flag ) {
9999 return source .reduce (new ArrayList <T >(),
100100 new Func2 <List <T >, T , List <T >>() {
@@ -119,7 +119,7 @@ public List<T> call(List<T> acc, T value) {
119119 }
120120
121121 private static <T , R > Observable <List <T >> minMaxBy (Observable <T > source ,
122- final Func1 <T , R > selector , final Comparator <R > comparator ,
122+ final Func1 <T , R > selector , final Comparator <? super R > comparator ,
123123 final long flag ) {
124124 return source .reduce (new ArrayList <T >(),
125125 new Func2 <List <T >, T , List <T >>() {
0 commit comments