gpt4 book ai didi

java - Java 类型推断是如何工作的?

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

有人可以解释一下下面的语法是如何工作的吗?

public static <K, V> HashMap<K, V> getMap(){
return new HashMap<K, V>();
}

例如,如果这个方法是在我自己的一个不可实例化的 util 类中实现的,那么它可以用作静态工厂方法来创建 map 实例,对吧?

Map<Integer, String> myMap = MyUtil.getMap();

然后会返回一个新的 HashMap,其条目包含 Integer 键和 String 值,对吗?如果是,编译器和VM是如何实现map的key和entry的类型的?

如果有人能解释 Java 是如何做到这一点的,我将不胜感激。

最佳答案

您问“Java 如何做到这一点”。 Java 是在语言规范中定义的,该规范不规定规范的实现方式。因此,选择解决方案实际上取决于实现。因此,如果您真的想知道特定的编译器或解释器如何实现类型推断,我怀疑熟悉该工具的人需要解决这个问题。

如果您的问题真的是“规则是什么”,那么您会发现 specification itself 中对它们进行了很好的解释。 ,并在 Java API documentation ,并在 standard Java tutorial (降低正式程度)。

这是一个相当复杂的领域,需要处理许多棘手的案例 - 事实上,它涉及三个过程才能正确理解(还原、合并和解析)。但是如果你正在寻找一个简单的总结,我会把它表述为“在实例化一个类或方法时,用尽可能具体的类型替换每个泛型”。在您的情况下,将 K 替换为 Integer 并将 V 替换为 String 是最具体的推理。

关于java - Java 类型推断是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31508838/

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