用 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();
}