gpt4 book ai didi

java - 为什么我不能将 Java 7 菱形语法与 Guava ImmutableSortedMap.Builder 一起使用

转载 作者:行者123 更新时间:2023-12-03 19:03:14 26 4
gpt4 key购买 nike

我使用的是 java 7,但这段代码无法编译

ImmutableSortedMap<Integer, String> INT_TO_WORD =
new ImmutableSortedMap.Builder<>(Ordering.natural())
.put(1, "one")
.put(2, "two")
.put(3, "three")
.build();

而这个是

ImmutableSortedMap<Integer, String> INT_TO_WORD =
new ImmutableSortedMap.Builder<Integer, String>(Ordering.natural())
.put(1, "one")
.put(2, "two")
.put(3, "three")
.build();

为什么我需要在 rhs 上指定类型当我在 lhs 上指定它们时?<> 还有更多内容吗?运算符(operator)比看起来更漂亮。

最佳答案

这与例如不同

ArrayList<String> l = new ArrayList<>();

此处右侧的 new 有效地创建了 ArrayList。

在您的示例中,new 正在创建一个完全不同的类型,即 Builder 并且只有在最后 ImmutableSortedMap 才由 build() 方法。编译器不知道 Builder<> 与您的 ImmutableSortedMap 有任何关系。

或者用一个愚蠢的例子,这可能是完全有效的:

ArrayList<String> l = new SomethingSilly<Boolean>().getArrayListOfStrings();

关于java - 为什么我不能将 Java 7 菱形语法与 Guava ImmutableSortedMap.Builder 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27556655/

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