我有一个有效的代码:
from py4j.java_gateway import JavaGateway
from py4j.java_gateway import java_import
gateway = JavaGateway()
java_import(gateway.jvm,'MyPackage.*')
myVar = gateway.jvm.MyClass()
myVar.myMethod(gateway.jvm.MyPackage.Constant.ConstantClass.MyField)
其中MyField
是来自ConstantClass
的静态字段
我希望避免使用全名调用字段,并将MyPackage.Constant
分别导入jvm
所以我写了这个代码,但是失败了:
from py4j.java_gateway import JavaGateway
from py4j.java_gateway import java_import
gateway = JavaGateway()
java_import(gateway.jvm,'MyPackage.*')
java_import(gateway.jvm,'MyPackage.Constant.*')
myVar = gateway.jvm.MyClass()
myVar.myMethod(gateway.jvm.ConstantClass.MyField)//the line with error
出现以下错误:
TypeError("'JavaPackage' object is not callable",)
有人能解释一下调用静态字段背后的机制吗?为什么不起作用
目前没有回答
相关问题 更多 >
编程相关推荐