Jpype将参数传递给Java

时间:2015-01-07 12:51:51

标签: java python-2.7 jpype

我有一个带有以下行的java程序员

service.loadPropertiesForItems(Inbox, new PropertySet(ItemSchema.Subject, ItemSchema.Body));

程序从外部jar调用类和方法。

我想在python中编写等效代码,它调用外部jar,就像我的java程序一样。 使用Jpype我实现了代码,但它在后续行

上失败了
service.loadPropertiesForItems(inbox, ewsPkg.PropertySet(ewsPkg.ItemSchema.Subject,   ewsPkg.ItemSchema.Body))

这里的PropertySet,ItemSchema是我从外部jar使用的类。 ItemSchema.Subject和ewsPkg.ItemSchema.Body是类类型

运行代码我在上面提到的行上得到了错误 -

service.loadPropertiesForItems(inbox, ewsPkg.PropertySet(ewsPkg.ItemSchema.Subject, ewsPkg.ItemSchema.Body))
File "C:\Python27\lib\site-packages\jpype\_jclass.py", line 79, in _javaInit
  self.__javaobject__ = self.__class__.__javaclass__.newClassInstance(*args)
RuntimeError: No matching overloads found. at src/native/common/jp_method.cpp:121

由于

1 个答案:

答案 0 :(得分:0)

正如马丁https://github.com/originell/jpype/issues/117

所建议的那样

以下代码效果很好

ItemSchema = ewsPkg.ItemSchema
PropertyDefinition = ewsPkg.PropertyDefinition
Subject = ItemSchema.Subject
Body = ItemSchema.Body

args = JArray(PropertyDefinition)([ItemSchema.Subject, Body])
PropertySet = ewsPkg.PropertySet(args)