Я хотел бы использовать 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
Как мне повторно реализовать B
в Python, используя Pyjnius?
Это моя попытка:
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
. Как мне это исправить?