2015-01-07 74 views
1

我有一個Java程序員下面一行Jpype參數傳遞給Java的

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

程序調用的類和方法從外部罐。

我想寫在python的等效代碼,它調用像我的java程序那樣的外部罐子。 使用Jpype我實現了代碼,但它在下面一行

service.loadPropertiesForItems(inbox, ewsPkg.PropertySet(ewsPkg.ItemSchema.Subject, ewsPkg.ItemSchema.Body)) 

這裏屬性集,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 

感謝

+0

您可以使用Jpype來分享一個從Python執行類的功能的工作示例。我無法找到一個工作示例,嘗試了幾個選項但失敗,出現錯誤「不可調用」 – Sankalp

回答

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)