1

次の行を持つJavaプログラマーがいます

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

プログラムは、外部 jar からクラスとメソッドを呼び出します。

Java プログラムのように外部 jar を呼び出す同等のコードを Python で記述したいと考えています。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

ありがとう

4

1 に答える 1

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)
于 2015-01-23T12:37:27.640 に答える