19
19
* @see Monoid
20
20
* @see java.util.Map
21
21
*/
22
- public class MergeMaps <K , V > implements BiMonoidFactory <Supplier <Map <K , V >>, Semigroup <V >, Map <K , V >> {
22
+ public final class MergeMaps <K , V > implements BiMonoidFactory <Supplier <Map <K , V >>, Semigroup <V >, Map <K , V >> {
23
+
24
+ private static final MergeMaps INSTANCE = new MergeMaps ();
25
+
23
26
private MergeMaps () {
24
27
}
25
28
@@ -33,23 +36,26 @@ public Monoid<Map<K, V>> apply(Supplier<Map<K, V>> mSupplier, Semigroup<V> semig
33
36
}, mSupplier );
34
37
}
35
38
36
- public static <A , B > MergeMaps <A , B > mergeMaps () {
37
- return new MergeMaps <>();
39
+ @ SuppressWarnings ("unchecked" )
40
+ public static <K , V > MergeMaps <K , V > mergeMaps () {
41
+ return INSTANCE ;
38
42
}
39
43
40
- public static <A , B > MonoidFactory <Semigroup <B >, Map <A , B >> mergeMaps (Supplier <Map <A , B >> mSupplier ) {
41
- return MergeMaps .<A , B >mergeMaps ().apply (mSupplier );
44
+ public static <K , V > MonoidFactory <Semigroup <V >, Map <K , V >> mergeMaps (Supplier <Map <K , V >> mSupplier ) {
45
+ return MergeMaps .<K , V >mergeMaps ().apply (mSupplier );
42
46
}
43
47
44
- public static <A , B > Monoid <Map <A , B >> mergeMaps (Supplier <Map <A , B >> mSupplier , Semigroup <B > semigroup ) {
48
+ public static <K , V > Monoid <Map <K , V >> mergeMaps (Supplier <Map <K , V >> mSupplier , Semigroup <V > semigroup ) {
45
49
return mergeMaps (mSupplier ).apply (semigroup );
46
50
}
47
51
48
- public static <A , B > Fn1 <Map <A , B >, Map <A , B >> mergeMaps (Supplier <Map <A , B >> mSupplier , Semigroup <B > semigroup , Map <A , B > x ) {
52
+ public static <K , V > Fn1 <Map <K , V >, Map <K , V >> mergeMaps (Supplier <Map <K , V >> mSupplier , Semigroup <V > semigroup ,
53
+ Map <K , V > x ) {
49
54
return mergeMaps (mSupplier , semigroup ).apply (x );
50
55
}
51
56
52
- public static <A , B > Map <A , B > mergeMaps (Supplier <Map <A , B >> mSupplier , Semigroup <B > semigroup , Map <A , B > x , Map <A , B > y ) {
57
+ public static <K , V > Map <K , V > mergeMaps (Supplier <Map <K , V >> mSupplier , Semigroup <V > semigroup , Map <K , V > x ,
58
+ Map <K , V > y ) {
53
59
return mergeMaps (mSupplier , semigroup , x ).apply (y );
54
60
}
55
61
}
0 commit comments