用 JPype 修改 Java/Scala class 变量?
modify Java/Scala class variables with JPype?
我一直在尝试使用 JPype 与 Scala 交互,一切顺利,但我在修改 class/object 变量时遇到了问题。要从它们中获取值,您必须将它们作为函数调用(例如 myObj.var() 可能给出 5)。我一直无法弄清楚如何将某些东西重新分配给 myObj.var,因为它是某种 JavaBoundMethod 类型或类似的东西。 JPype 可以吗?
如果成员确实被声明为 var
(而不是 val
),应该有一个名为 myObj.var_$eq()
的方法可以调用。
此代码...
class Foo {
var i: Int = 0
}
...在字节码中以这样的方式结束:
scala> :javap -s Foo
Compiled from "<console>"
public class Foo {
public int i();
public void i_$eq(int);
public Foo();
}
我一直在尝试使用 JPype 与 Scala 交互,一切顺利,但我在修改 class/object 变量时遇到了问题。要从它们中获取值,您必须将它们作为函数调用(例如 myObj.var() 可能给出 5)。我一直无法弄清楚如何将某些东西重新分配给 myObj.var,因为它是某种 JavaBoundMethod 类型或类似的东西。 JPype 可以吗?
如果成员确实被声明为 var
(而不是 val
),应该有一个名为 myObj.var_$eq()
的方法可以调用。
此代码...
class Foo {
var i: Int = 0
}
...在字节码中以这样的方式结束:
scala> :javap -s Foo
Compiled from "<console>"
public class Foo {
public int i();
public void i_$eq(int);
public Foo();
}