gpt4 book ai didi

java - 这里如何推断通用类型?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:47:32 25 4
gpt4 key购买 nike

public static void main(String[] args) {
Map<String, Map<Long, List<String>>> map = getHashMap();
}

static <K,V> Map<K,V> getHashMap()
{
return new HashMap<K, V>();
}

我在 google guava 中看到了类似的代码(作为工厂方法)用于创建 Hashmap 的实例而没有提及泛型类型。我不明白上面的程序是如何推断出泛型的。我的意思是函数 getHashMap 怎么能了解 map 的类型,因为我没有将任何类型信息传递给函数。

最佳答案

getHashMap 函数不必推断类型。在调用站点,Java 语言规范要求 javac 推断类型一致 ( 15.12.2.7 Inferring Type Arguments Based on Actual Arguments )。

我相信目前的计划是(仍然)让 JDK7 支持菱形运算符,所以这种事情也适用于 new,尽管有一些明显毫无意义的语法。

Map<String, Map<Long, List<String>>> map = new HashMap<>();
^^diamond

关于java - 这里如何推断通用类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3760415/

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