gpt4 book ai didi

java - Guava 缓存覆盖错误

转载 作者:行者123 更新时间:2023-12-02 05:27:01 25 4
gpt4 key购买 nike

关于泛型的菜鸟问题。我试图覆盖 loadAll CacheLoader中的方法类(class)。它的签名是

public Map<K,V> loadAll(Iterable<? extends K> keys)

现在当我用 loadAll(List<Integer>) 覆盖时它会抛出错误并建议删除 @Override然而注释同样适用于 loadAll(Iterable<? extends Integer>) 。有人可以告诉我其中的区别吗?不是 list也是可迭代的吗?

最佳答案

正如您在 JavaDoc 中看到的那样List确实实现了接口(interface)Iterable .

您的新签名:

public Map<K,V> loadAll(List<Integer>)

但是不会覆盖该方法:

public Map<K,V> loadAll(Iterable<? extends K> keys)

因为您将方法的调用者限制为 List 类型的参数但要“履行 promise ”您尝试覆盖的接口(interface),您必须接受 Iterable<? extends K> keys 类型的参数。如果您提供参数类型 Iterable<? extends Integer> 的接口(interface)你正是这么做的。

另一个澄清这一点的例子:您的非工作签名不会接受 Set而接口(interface)的原始方法会。

关于java - Guava 缓存覆盖错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25910704/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com