gpt4 book ai didi

Java map 中的 map ,REST Web 服务

转载 作者:行者123 更新时间:2023-12-01 11:06:24 25 4
gpt4 key购买 nike

//大家好,

所以我正在制作一个收件箱元素,并且..我需要从服务获取字段“startDate”,但我遇到了一个问题,因为该服务中的所有数据都是“深度”映射的..

我发现的是:

GenericType<Map<String, Object>> responseType2 = new GenericType<Map<String, Object>>() {};   
Map<String, Object> data2 = info.readEntity(responseType2);

Map<String, Object> data3 = (Map<String, Object>) data2.get("data");

Map<String, Object> data4 = (Map<String, Object>) data3.get("workflowInstance");

只有在这一切之后,我才能得到我需要的东西..

好吧,它可以工作,但是代码看起来很多余?!

而且,我希望找到的是一种在 map 中制作类似 map 的方法,或者任何其他方式,以使代码更高效?

提前致谢。

最佳答案

很难从简短的代码片段中确切地看出您想要做什么,但假设您想要的只是一个简单的实用程序,您可以编写如下方法:

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 更有效,但恕我直言,它肯定更具可读性。

关于Java map 中的 map ,REST Web 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32902116/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com