gpt4 book ai didi

java - 不可变映射,添加单个对象是语法错误,2 没问题

转载 作者:行者123 更新时间:2023-11-29 03:23:15 26 4
gpt4 key购买 nike

当我向不可变 map 添加对象时,我注意到了这一点。

如果我添加一个对象,例如:

 Map<String, Object> model = ImmutableMap.of(
"post", post

);

我收到一个编译时错误,指出该帖子不是一个对象。

如果我这样做:

 Map<String, Object> model = ImmutableMap.of(
"post", post,
"asdf", new Object()


);

它编译得很好。有没有办法将 post 对象转换为一个对象,以便它与单个对象一起使用?

或者更重要的是,为什么会发生这种情况?

最佳答案

ImmutableMap.of()的声明看起来像这样:

public static <K, V> ImmutableMap<K, V> of(K k1, V v1, ...)

因此它将默认返回键和值的推断类型,并且泛型是不变的(因此 <String, PostType> 不是 <String, Object> 的子类型)。

强制它变成Map<String, Object> ,您需要做的就是使用(丑陋的)显式类型:

Map<String, Object> model = ImmutableMap.<String, Object>of("post", post)

关于java - 不可变映射,添加单个对象是语法错误,2 没问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22445262/

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