程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长


+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

将 String、ArrayList 等对象添加到 List<Object>

发布于2021-11-28 10:30     阅读(308)     评论(0)     点赞(15)     收藏(3)


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

我看到错误添加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>.

阅读有关 Java一般编程中的协变和逆变的更多信息

这将解决它

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

或者

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

并且请避免在您的代码中使用原始类型



所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:http://www.javaheidong.com/blog/article/337847/1c427cdba103b94cdfdc/

来源:java黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

15 0
收藏该文
已收藏

评论内容:(最多支持255个字符)