- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想使用 Pyjnius 创建一个 Python 类来扩展 Java 类并重写它的一些方法。
具体来说,这些 Java 类:
public class A {
public void test_method() {
System.out.println("In parent test_method!!!");
}
public static void run(A a) {
System.out.println("Running...");
a.test_method();
}
}
和
public class B extends A {
public void test_method() {
System.out.println("test method");
}
public static void main(String[] args) {
A.run(new B());
}
}
当我运行时,我看到:
Running...
test method
如何使用 Pyjnius 在 Python 中重新实现 B
?
这是我的尝试:
import jnius_config
jnius_config.set_classpath('jars/testClasses.jar')
from jnius import autoclass, PythonJavaClass, JavaClass, MetaJavaClass, java_method
A = autoclass('test.pyjnius.A')
class B(A):
__javaclass__ = 'test/pyjnius/A'
@java_method('()Z')
def test_method(self):
print("test method")
A.run(B())
当我运行 Python 版本时,我看到这个:
Running...
In parent test_method!!!
它没有正确覆盖test_method
。我该如何解决这个问题?
最佳答案
这里的答案是我想做的事情是不可能的。 JVM 无法调用 Python 子类中实现的 a 方法,因为它甚至不知道它存在。
解决方法是在类 B
中实现 run
方法,但为子类的方法提供便利。像这样的事情:
class B(A):
__javaclass__ = 'test/pyjnius/A'
@java_method('()Z')
def test_method(self):
print("test method")
def run(self):
A.runPart1(self)
self.test_method()
A.runPart2(self)
在 Java 类 A
的修改版本中实现 runPart1
和 runPart2
。
关于java - 使用 Pyjnius 覆盖 Python 中的 Java 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60775615/
我需要在我的 Kivy 应用程序中访问 Android 上的蓝牙。 我正在尝试在 Windows 上设置 pyjnius 以开发我的应用程序。我从 GitHub 下载了 pyjnius,并尝试在 ki
我正在尝试使用 Kivy 制作蓝牙应用程序,因此我需要使用 java 类,当我使用 Pyjnius 时收到此错误消息 Traceback (most recent call last): File
我正在通过 Python 的 pyjnius 包 1.2.0 版运行一些 Java 代码。有几个 Python 进程,每个进程都使用不同的输入调用同一个 Java 类,因此每个进程都会初始化自己的 J
我在尝试使用 Pyjnius 访问 Android Java 类“ContactsContract.Intents.Insert”时遇到了困难。 我一直在关注此处提供的示例: 皮尼乌斯:http://
谁能指导我一步一步我是初学者,我想弄清楚如何安装pyjnius。 谢谢问候。 最佳答案 Pyjnius 依赖于 Cython 和 Java。假设您已经安装了 Java。请执行以下操作: su pip
我使用 pip 安装了 kivi、pyjnius 和 jnius python.exe -m pip install pyjnius python.exe -m pip install jnius 它
我想使用 Pyjnius 创建一个 Python 类来扩展 Java 类并重写它的一些方法。 具体来说,这些 Java 类: public class A { public void test
我一直在摸索使用python for android jnius库从蓝牙RS232转换器获取数据。我原以为它会像 PySerial 库一样简单,但由于我还是 java 新手,所以实现是完全不同的。我很
有没有办法从 Python 实现 Java 接口(interface),例如这个 OnPreparedListener interface ? 我尝试过 Pyjinius 但没有成功。 最佳答案 查了
我是 KIVY、pyjnius 和 python-android 的新手。我需要为 android 制作简单的应用程序,它显示 GPS 坐标。但是,正如我所说,我是 kivy 和 pyforandro
我正在使用以下代码将 braintrees 嵌入式 UI 支付方法导入我的 python kivy 应用程序。 from jnius import autoclass from jnius impor
所以我需要从 Android 中的 InputStream 中读取一个 ByteArray。因此我用了这个 custom method出于与链接中所述相同的原因,在使用 pyjnius 的 kivy
我是一名优秀的程序员,十分优秀!