// 大家好,
所以我正在创建一个收件箱元素,并且......我需要获得字段" startDate"从服务,但我遇到了一个问题,因为这项服务中的所有数据都是"深度" maped ..
我想到的是:
original = original.replace("Ą", "A");
original = original.replace("Ć", "C");
original = original.replace("Ę", "E");
original = original.replace("Ł", "L");
original = original.replace("Ń", "N");
original = original.replace("Ó", "O");
original = original.replace("Ś ", "S");
original = original.replace("Ź", "Z");
original = original.replace("Ż", "Z");
original = original.replace("ą", "a");
original = original.replace("ć", "c");
original = original.replace("ę", "e");
original = original.replace("ł", "l");
original = original.replace("ń", "n");
original = original.replace("ó", "o");
original = original.replace("ś", "s");
original = original.replace("ź", "z");
original = original.replace("ż", "z");
original = original.replace("ž", "z");
只有在这之后,我才能得到我需要的东西..
好的,它有效,但代码看起来很冗余?!
而且,我希望找到的是一种在地图中制作地图或其他任何方式的方法,以提高代码效率?
提前致谢。
答案 0 :(得分:1)
很难从你简短的代码片段中准确地告诉你要做什么,但假设你所有人都是一个简单的实用程序,你可以写一个像这样的方法:
public static <T> Map<String, T> get(Map<String, ?> data, String... path)
{
if (path.length == 0)
{
return null;
}
Map<String, ?> child = data;
for (int i = 0; i < path.length; i++)
{
String childKey = path[i];
child = child.get(childKey);
if (child == null)
{
return null;
}
}
return child;
}
可以像这样调用:
Map<String, Object> data = get(info.readEntity(responseType2), "data", "workflowInstance");
这个代码在速度方面不会比问题中显示的单个Map.get
更有效,但它确实更具可读性,imho。