arg无法强制转换为java.util.List?有人能告诉我我的代码中有什么问题吗?

时间:2012-09-11 09:04:50

标签: java python jython grinder

myDict = {'itemkey1':'itemvalue1', 'itemkey2':'itemkey2','itemkey3':'itemvalue3','itemkey4':'itemvalue4'};

event = portTest.event(myDict);

我收到以下错误

Aborted run: Jython exception: TypeError:arg can't be coerced to java.util.List

myDict是键值数组。

我希望我在myDict keyvalue[]数据列表中传递正确的语法,因为它只是获得了键值对。

public Response event(KeyValue[] dataList)

我使用grinder工具从jython脚本调用java中的事件函数。

2 个答案:

答案 0 :(得分:1)

您需要将字典转换为一系列键和值:

def chainDict(mapping):
    items = []
    for item in mapping.iteritems():
        items.extend(item)
    return items

event = portTest.event(chainDict(myDict))

这会将[keyFoo, valueFoo keyBar, valueBar]的列表传递给event方法,其中键和值按任意顺序配对。

如果您没有itertools模块,chain可以定义为:

答案 1 :(得分:0)

您需要明确传递myDict.items()而不是myDict用于KeyValue对,myDict.keys()用于密钥,或myDict.values()用于err,值。