gpt4 book ai didi

java - 复杂类型中的通用通配符边界

转载 作者:搜寻专家 更新时间:2023-11-01 03:18:54 26 4
gpt4 key购买 nike

<分区>

我不明白generic wildcard bounderies用法。
你能解释一下为什么吗processListprocessMap 时工作得很好在以下示例中因编译错误而失败?我应该如何更改 processMap 的签名使其与 Map<String, List<String>> 一起使用和 Map<String, List<Object>>

public void processList(List<? extends Object> list) {
}

public void processMap(Map<String, List<? extends Object>> map) {
}

public void f() {
List<String> list = new ArrayList<>();
Map<String, List<String>> map = new HashMap<>();

processList(list); // OK
processMap(map); // ERROR
}

虽然将泛型类型定义从方法参数类型移动到方法参数,但成功了

public void processMap(Map<String, List<? extends Object>> map)
public <T extends Object> void processMap(Map<String, List<T>> map)

我现在想知道两者之间的区别。移至another thread .

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