gpt4 book ai didi

java - 下面的代码使用 (? extends aClass) 让我感到困惑

转载 作者:太空宇宙 更新时间:2023-11-04 09:29:47 25 4
gpt4 key购买 nike

根据我的理解(显然需要更正), map 应该采用 Integer 类及其所有子类。与 Location 类相同。

Map<? extends Integer, ? extends Location> test2 = new HashMap<>();
test2.put(new Integer(5), new Location(1, "Test2", exits));

我观看并阅读了许多不同的资源。但我仍然无法理解这个问题。我不是专业程序员。

最佳答案

引用Oracle Docs for generics

You can use an upper bounded wildcard to relax the restrictions on a variable. For example, say you want to write a method that works on List<Integer>, List<Double>, and List<Number>; you can achieve this by using an upper bounded wildcard.

The upper bounded wildcard, <? extends Foo>, where Foo is any type, matches Foo and any subtype of Foo. The process method can access the list elements as type Foo:

所以基本上test2Map它将键视为 Integer 或任何扩展了 Integer 的类(即 Integer 的子类),并将值设为 Location或其子类

关于java - 下面的代码使用 (? extends aClass) 让我感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57232048/

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