为什么Map#getOrDefault不是更通用的?

时间:2016-07-09 00:01:05

标签: java collections

我正在撰写Map<K, ? extends V>的消费者。地图有一些V的子类型,但我只处理V。我希望getOrDefault返回V,我想提供一个默认值,它是V的子类型,可能与地图的值类型不同。我写了这个方法来得到我想要的东西:

static <K, U, V extends U, W extends U> U getOrDefault(
    Map<? super K, V> map, K key, W defaultValue)
{
    final U value = map.get(key);
    return (value == null) ? defaultValue : value;
}

任何原因都不能作为getOrDefault的原始规范?

0 个答案:

没有答案