java - new ImmutableMap.Builder() 与 ImmutableMap.builder()

标签 java dictionary builder

enter image description here

private static final Map<String, String> LOCALE_FOLDER_MAP = new ImmutableMap.Builder()
        .put("a", "b")
        .build();

private static final Map<String, String> LOCALE_FOLDER_MAPP = ImmutableMap.builder()
        .put("a", "b")
        .build();

奇怪的是ImmutableMap.builder()返回new ImmutableMap.Builder();。使用return语句替换原来的代码后,上面的两段代码应该是等价的。

但事实并非如此,这让我很困惑。

有没有人解释一下?

错误信息是

Required type: Map <String, String>. Provided: ImmutableMap<Object, Object>

最佳答案

ImmutableMap.builder是通用的。您需要为其提供参数。否则它会推断ImmutableMap.Builder<Object, Object>作为其返回类型。

ImmutableMap.<String, String>builder()应该可以解决问题。

第一个正在工作,因为显然您可以将原始类型分配给参数化。

ImmutableMap v1 = ...;
ImmutableMap<String, String> v2 = v1;

关于java - new ImmutableMap.Builder() 与 ImmutableMap.builder(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68717346/

相关文章:

java - 从 hibernate 检索几何对象到 angular.js

c# - 如何在 C# 中向字典添加多个值?

android - 在android中隐藏警报对话框

java - "Redraw"LinearLayout View 更改选项

c# - 将类列表添加到字典 C#

java - Builder 模式对 Setter 方法有用吗?

java - MimePartBody.getDisposition() 对于内联部分返回 null

java - 为什么 ArrayAdapter 只从数组的每个成员中检索一个对象,而不是整个对象?

java - 在 Java 中查找 N 个列表之间的公共(public)元素

c# - 在不知道其类型的情况下获取字典键值对