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/