【发布时间】:2021-07-07 18:04:42
【问题描述】:
如何减少以下sn-p中的代码重复? Java 12. 提前感谢您
public <V, RK> Map<RK, V> mapKeys(Map<String, V> input, Function<String, RK> keyTransformer) {
Map<RK, V> result = new HashMap<>();
input.forEach((k, v) -> result.put(keyTransformer.apply(k), v));
return result;
}
public <K, RV> Map<K, RV> mapValues(Map<K, String> input, Function<String, RV> valueTransformer) {
Map<K, RV> result = new HashMap<>();
input.forEach((k, v) -> result.put(k, valueTransformer.apply(v)));
return result;
}
public <RK, RV> Map<RK, RV> mapBothTypes(Map<String, String> input, Function<String, RK> keyTransformer, Function<String, RV> valueTransformer) {
Map<RK, RV> result = new HashMap<>();
input.forEach((k, v) -> result.put(keyTransformer.apply(k), valueTransformer.apply(v)));
return result;
}
【问题讨论】:
-
我看不到任何减少代码的机会,因为我们无法重构一种方法来实现这一点。
-
@krishnathota 或前两种方法可以just be removed 支持第三种。
标签: java functional-programming code-duplication