我的端点中有以下方法:
public void test(Map<Long, List<String>> map) {
//do something with the map
}
但生成的代码需要一个基本上是Map<String, Object>
的JsonMap。所以我必须把我的地图放到JsonMap中。
import com.example.mymodule.backend.endpointName.model.JsonMap
.
.
.
public void someMethod(Map mappings) {
JsonMap map = new JsonMap();
for (Map.Entry<Long, List<String>> e : mappings.entrySet()) {
map.put(String.valueOf(e.getKey()), e.getValue());
}
endpointServiceHandle.endpoint().test(map).execute();
}
它似乎工作,直到它到达端点中mappings
(迭代期间)的末尾。在上一个Key,Value
对中Key
不是long
而且值不是List<String>
,但两者都是String
。
基本上:如何使用Long和List对的Map作为参数?
答案 0 :(得分:2)
您似乎以一种奇怪的方式解决了这个问题。你有read the docs on endpoints in Java吗?有效的参数类型包括任何java.util.Collection。您可以简单地将所有内容作为字符串映射发送,并根据应用程序的需要解析长/字符串。似乎最后一个键值对失败了,因为地图中的类型与您引用它们的方式不一致,如您所述。