Учитывая ваш код:
private static Map<String, LinkedHashMap> myYamlMap;
LinkedHashMap<String, LinkedHashMap> mainMap = (LinkedHashMap<String, LinkedHashMap>)myYamlMap.get("sample");
Это не имеет смысла.
private static Map<String, LinkedHashMap> myYamlMap;
Вероятно, это должно быть
private static Map<String, Map<Key, Value>;
myYamlMap = new LinkedHashMap<String, Map<Key, Value>>;
myYamlMap.put("key1", new LinkedHashMap<Key,Value>();
для некоторых типов Key
и Value
, которые не указаны в вашем коде ...
ИЛИ что-то более сложное - см. Ниже
LinkedHashMap<String, LinkedHashMap> mainMap = (LinkedHashMap<String, LinkedHashMap>)myYamlMap.get("sample");
Ваше использование get
здесь подразумевает, что myYamlMap
должно быть
private static Map<String, Map<String, Map<Key, Value>> myYamlMap;
myYamlMap = new LinkedHashMap<String, Map<String, Map<Key,Value>>>;
Map<Key,Value> temp = new LinkedHashMap<Key,Value>();
temp.put(k1, value1);
myYamlMap.put("sample", temp);
поскольку вы, похоже, ожидаете, что get()
вернет Map<String,Map<Key,Value>>
из внешней коллекции.
СЕЙЧАС вы можете сделать
Map<String, Map<Key,Value>> mainMap = myYamlMap.get("sample");
Причина использования интерфейса Map
заключается в том, что нигде в вашем коде вы не используете методы, специфичные для LinkedHashMap
, поэтому все объявления должны использовать только Map<...>
, за исключением случаев создания экземпляров карт.