gpt4 book ai didi

java - 将 String、ArrayList 等对象添加到 List
转载 作者:行者123 更新时间:2023-11-30 08:10:59 25 4
gpt4 key购买 nike

我有一个数据结构 Map < String, Map < ConfigKey, ConfigValue<Object > > > .这就像一个 Map “命名空间”到 Map从“键”到“值”。我的解析器读取配置文件并动态决定该值是否应被视为 StringArrayList .

我发现添加 ArrayList 时出错到上面的数据结构。请告诉我如何解决这个问题。

private Map<String, Map<ConfigKey, ConfigValue<Object>>> configuration = new HashMap<String, Map<ConfigKey, ConfigValue<Object>>>();
:
configuration.get(groupName).put(new ConfigKey(key), new ConfigValue<Object>(override, value)); // works
:
configuration.get(groupName).put(new ConfigKey(key), new ConfigValue<List>(override, Arrays.asList(values))); // does not work

最佳答案

ConfigValue<List> is not a ConfigValue<Object>.

Read more about covariance and contravariance in Java或在 programming in general.

这会解决它

private Map<String, Map<ConfigKey, ConfigValue<? extends Object>>> configuration = new HashMap<String, Map<ConfigKey, ConfigValue<? extends Object>>>();

Map<String, Map<ConfigKey, ConfigValue<?>>> 

请避免raw-types在您的代码中。

关于java - 将 String、ArrayList 等对象添加到 List<Object>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31362159/

25 4 0