我有这个有效的代码:
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'对象不可调用”,)
谁能向我解释调用静态字段的机制,为什么不起作用?