28
28
*/
29
29
public class OperationMinMax {
30
30
31
- public static <T extends Comparable <T >> Observable <T > min (
31
+ public static <T extends Comparable <? super T >> Observable <T > min (
32
32
Observable <T > source ) {
33
33
return minMax (source , -1L );
34
34
}
35
35
36
36
public static <T > Observable <T > min (Observable <T > source ,
37
- final Comparator <T > comparator ) {
37
+ final Comparator <? super T > comparator ) {
38
38
return minMax (source , comparator , -1L );
39
39
}
40
40
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 (
42
42
Observable <T > source , final Func1 <T , R > selector ) {
43
43
return minMaxBy (source , selector , -1L );
44
44
}
45
45
46
46
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 ) {
48
48
return minMaxBy (source , selector , comparator , -1L );
49
49
}
50
50
51
- public static <T extends Comparable <T >> Observable <T > max (
51
+ public static <T extends Comparable <? super T >> Observable <T > max (
52
52
Observable <T > source ) {
53
53
return minMax (source , 1L );
54
54
}
55
55
56
56
public static <T > Observable <T > max (Observable <T > source ,
57
- final Comparator <T > comparator ) {
57
+ final Comparator <? super T > comparator ) {
58
58
return minMax (source , comparator , 1L );
59
59
}
60
60
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 (
62
62
Observable <T > source , final Func1 <T , R > selector ) {
63
63
return minMaxBy (source , selector , 1L );
64
64
}
65
65
66
66
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 ) {
68
68
return minMaxBy (source , selector , comparator , 1L );
69
69
}
70
70
71
- private static <T extends Comparable <T >> Observable <T > minMax (
71
+ private static <T extends Comparable <? super T >> Observable <T > minMax (
72
72
Observable <T > source , final long flag ) {
73
73
return source .reduce (new Func2 <T , T , T >() {
74
74
@ Override
@@ -82,7 +82,7 @@ public T call(T acc, T value) {
82
82
}
83
83
84
84
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 ) {
86
86
return source .reduce (new Func2 <T , T , T >() {
87
87
@ Override
88
88
public T call (T acc , T value ) {
@@ -94,7 +94,7 @@ public T call(T acc, T value) {
94
94
});
95
95
}
96
96
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 (
98
98
Observable <T > source , final Func1 <T , R > selector , final long flag ) {
99
99
return source .reduce (new ArrayList <T >(),
100
100
new Func2 <List <T >, T , List <T >>() {
@@ -119,7 +119,7 @@ public List<T> call(List<T> acc, T value) {
119
119
}
120
120
121
121
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 ,
123
123
final long flag ) {
124
124
return source .reduce (new ArrayList <T >(),
125
125
new Func2 <List <T >, T , List <T >>() {
0 commit comments