gpt4 book ai didi

java - Jython:将脚本中的 java 类实例化为 Java 对象,而不是 Python 对象

转载 作者:行者123 更新时间:2023-11-30 09:58:12 25 4
gpt4 key购买 nike

我在使用 Jython 时遇到问题,但我似乎无法在文档中找到解决方案。

基本上我拥有的是一个已经用 Java 实例化的对象,我想实例化另一个 Java 对象(在 python 脚本中)并将预实例化的 java 对象添加到我在 jython 解释器中实例化的对象.

例如:

public class A {
private B bInstance;

public void setB(B bval) {
bInstance = b;
}
}

public class B {
private String name;

public String getName() {
return name;
}

public void setName(String n) {
this.name = n;
}
}

python 脚本(有一个 B 实例绑定(bind)为“b_inst”):

import com.package.A
a_inst = com.package.A()
a_inst.setB(b_inst)

当我尝试运行上面的代码时,出现以下异常: TypeError: setB(): 预期 2 个参数;得到 1

我很确定这是因为 setB() 方法试图调用 Python 对象上的方法,而不是实际的 java 对象上的方法。基本上,我希望我刚刚在 jython 脚本中创建的 A 实例上对 setB() 的调用是一个 java 对象,而不是 python 对象。

抱歉,如果这很明显,我已经阅读了教程以及“Java in a Nutshell”和“Core Python Programming”的 Jython 部分,但是示例真的非常简单,他们没有示例说明如何进行双向绑定(bind)。

最佳答案

您使用的是哪个版本的 Jython?我正在尝试使用 2.5.0 和以下工作:

from com.package import A, B
b_inst = B()
a_inst = A()
a_inst.setB(b_inst)

它不喜欢 com.package.A() 语法,所以我将其更改为您在此处看到的内容。

关于java - Jython:将脚本中的 java 类实例化为 Java 对象,而不是 Python 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1115451/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com