我正在尝试在 Jython 中为 Java 对象编写一个对象检查器,并且我想确定给定 Java 方法需要多少个参数。有没有办法在 python 中做到这一点,或者我必须为此使用 Java 反射。
为了解释,我想调用一个不带任何参数的 Java 对象的所有“get...”方法:
from java.util import Date, ArrayList
def numberOfArguments(fct):
# Some magic happens here
return 0
def check(o):
print("")
print(type(o).name)
for fctName in dir(o):
if not str(fctName).startswith("get"): continue
print("== " + fctName)
fct = eval("o."+fctName)
if numberOfArguments(fct) == 0:
print(" " + str(fct()))
check(Date())
check(ArrayList())