我的端点上有以下方法:

public void test(Map<Long, List<String>> map) {
    //do something with the map
}


但是生成的代码需要一个JsonMap,它基本上是一个Map<String, Object>。因此,我必须将地图放入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

基本上:如何使用长对和列表对映射作为参数?

最佳答案

看来您正在以一种奇怪的方式进行此操作。你read the docs on endpoints in Java了吗?有效的参数类型包括任何java.util.Collection。您可以简单地将所有内容作为字符串映射发送,并根据您的应用程序的需要来解析长号/字符串。如前所述,最后一个键值对似乎失败了,因为映射中的类型与您引用它们的方式不对应。

10-04 12:41