gpt4 book ai didi

java - 从 Jython 中的 Java 项目访问方法

转载 作者:行者123 更新时间:2023-12-01 14:02:38 24 4
gpt4 key购买 nike

我目前正在用 Java 编写一款游戏,该游戏随着时间的推移变得越来越大。所以现在我正处于这样一个阶段:更动态的代码实现将变得非常方便。我决定研究一下 Jython 并让它可以使用一些简单的脚本。(顺便说一句,如果有什么关系的话,我正在使用最新的独立 Jython)。

现在我的问题是:我可以在上述 Java 项目中执行的 Jython 脚本中执行 Java 项目中的方法吗?

这是一个伪代码示例,可以更好地理解我想问的问题:

假设我有一个如下所示的脚本:

def main():
killPlayer()

main()

以及一个包含方法“killPlayer()”的 Java 类:

public void killPlayer() {
player.setAlive(false);
}

Jython 脚本执行如下:

PythonInterpreter pyInterp = new PythonInterpreter();
pyInterp("script.py");

这种事有可能吗?

预先感谢并为我糟糕的英语感到抱歉^^

最佳答案

您可以像这样在 Jython 中导入 Java 类:

from javax.swing import JFrame
f = JFrame('Hello, World!', defaultCloseOperation=JFrame.EXIT_ON_CLOSE, size=(300, 300), locationRelativeTo=None)
f.setVisible(True)

( source )

所以我的建议是使用Java代码作为库并在Python中实现“设置一切”。这样,您就不需要找出从脚本中查找 Java 对象实例的方法。

如果您需要查找实例,我建议在某处创建一个静态全局变量,以便您可以访问公开重要游戏实例的类。在 Java 代码中,您可以使用 Jython 脚本的 Map 中的名称注册实例。

关于java - 从 Jython 中的 Java 项目访问方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19229106/

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