gpt4 book ai didi

Java 7 菱形运算符 : why was it difficult to implement?

转载 作者:太空狗 更新时间:2023-10-29 22:46:36 26 4
gpt4 key购买 nike

我观看了 Oracle OTN 虚拟 Activity :Java SE 和 JavaFX 2.0(2012 年 2 月 28 日),在谈论新的菱形运算符(即 Map<String, List<String>> myMap = new HashMap<>(); 东西)时,演讲者提到它的实现并不像人们想象的那么简单,因为它不是简单的 token 替换。

我的问题是为什么?为什么不能简单地从变量声明中取出字符串并将其放入菱形运算符来实现?

最佳答案

我也没有实现,所以我只能猜测。

通常这些事情比看起来更复杂的原因是第一次检查只关注最常见(或最公开)的用例。在这种情况下,它就是您提到的那个。理论上应该很容易准确指定,并且应该很容易在编译器中实现。

但是,菱形运算符(顺便说一句,从技术上讲,它不是运算符)也可以以不同的方式使用:

someMethodWithGenericArguments(new HashMap<>());
new SomeGenericClass(new HashMap<>());
T foo = new SomethingRelatedToT<>(); // where T is a generic type parameter

在这些情况下,简单的标记替换显然不再有效,您需要涉及实际类型分析的实际类型推断(即它与简单标记替换处于完全不同的抽象级别)。

关于Java 7 菱形运算符 : why was it difficult to implement?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9512526/

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