[英]Adding String,ArrayList, etc objects to List<Object>
我有一個數據結構Map < String, Map < ConfigKey, ConfigValue<Object > > >
。 這就像一個Map
“命名空間”,以Map
的“鑰匙”,以“價值”。 我的解析器讀取配置文件,並動態決定該值應視為String
還是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>.
這會解決它
private Map<String, Map<ConfigKey, ConfigValue<? extends Object>>> configuration = new HashMap<String, Map<ConfigKey, ConfigValue<? extends Object>>>();
要么
Map<String, Map<ConfigKey, ConfigValue<?>>>
並且請避免在代碼中使用原始類型 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.