【发布时间】:2018-04-27 04:57:21
【问题描述】:
Map 的ComputeIfAbsent 方法有如下声明:
computeIfAbsent(K key, Function<? super K,? extends V> mappingFunction).
当 K 和 V 类型不在其他任何地方使用时,为什么不将参数声明为 Function<K,V>?
现在我明白了 K 和 V 非常重要,它们是 Map 类声明的一部分。
【问题讨论】:
-
一般要明确什么是可以接受的。例如,只要超类是 K,第二个参数只要扩展 V,就可以将任何内容传递给函数。否则可能会导致误解。
-
K和V是Map的参数为什么你认为它们没有被使用? -
值得一看here。我什至可能会说这个问题是重复的。
标签: java generics functional-programming