在我的一个项目中,我尝试在传递给参数的嵌套地图中设置值并返回更新的地图。问题是:假设我不知道地图结构,如何在嵌套地图的给定路径中设置值?
我试图做到这一点。我试图递归调用set方法但无济于事,该方法没有返回 {age=1, human={lives=3, deaths=2}},而是返回 {deaths=2} 或null. 但是,请注意,这是我无数次尝试中的一次。
这是我的一种方法(其他方法已删除):
@SuppressWarnings("unchecked")
private static Map<Object, Object> setNested(YamlParser parser, List<String> paths, String key, Object value, Map<Object, Object> previousMap, int loops) {
Object found = parser.getObject(paths);
if (!(found instanceof Map))
return previousMap; // path is not nested
Map<Object, Object> theMap = (Map<Object, Object>) found;
theMap.put(key, value);
// .... ?
System.out.println(theMap);
return setNested(parser, paths, key, theMap, theMap, loops + 1);
}
慕码人8056858
斯蒂芬大帝
相关分类