我有一个包含40多个参数的SOAP方法,我想传递一个地图而不是列出方法调用中的所有参数。以下是示例代码:
Map input = [ Param1: 'Test1', Param2: 'Test2' ]
class WSClient {
def post(String Param1, String Param2) {
println "Param1: ${Param1}, Param2: ${Param2}"
}
}
def client = new WSClient()
client.post(input)
有没有办法传播"将键/值映射到方法形式参数?或者还有其他方法可以做到这种方式吗?
以上代码会产生No signature of method: WSClient.post() is applicable for argument types: (java.util.LinkedHashMap)
答案 0 :(得分:3)
如果您可以对地图中的元素及其顺序进行假设,则可以执行此操作。像这样的东西会起作用......
client.post(*(input.values() as List))
如果您不知道参赛作品的顺序或参赛作品的数量,那将无济于事。