gpt4 book ai didi

python - JPype 的 properties access shadows 方法用属性名

转载 作者:太空宇宙 更新时间:2023-11-04 06:10:20 37 4
gpt4 key购买 nike

当同一个类具有 getNext() 方法时,如何访问名为 next() 的 Java 方法?

JPype 具有允许您仅使用属性名称访问 bean 属性(不带参数的 get-Methods)的功能。因此,如果您有一个带有方法 getNext() 的类,您可以使用 instance.next 从 python 中访问该 bean 属性,这在 99.9% 的情况下都很好.但是如何访问 instance.next()?如果我调用 instance.next(),我会得到一个异常,说明 bean 属性的返回类型不可调用。

最佳答案

您可能不得不求助于对底层 java 类使用反射:

# iterate through all methods
for method in instance.__javaclass__.getMethods():
# find the method matching the correct signature
if method.name == u'next' and len(method.parameterTypes) == 0:
# create a function that invokes the method on the given object
# without additional arguments
next_instance = lambda o: method.invoke(o, [])
break
else:
raise Exception('method was not found')

nxt = next_instance(instance)

关于python - JPype 的 properties access shadows 方法用属性名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19121961/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com