[英]Java: Accessing member of a derived class when an object is declared as a base class
[英]AttributeError when accessing member of Java class in Jython
我正在尝试将我自己的 java 类导入到一些 jython 代码中。 我将我的 .java 编译为一个 .class 文件并将 .class 文件放入一个 .jar 中。 然后我使用 -Dpython.path="path/to/jar/my.jar" 包含这个 .jar 文件。 到目前为止一切顺利,启动我的程序时没有抱怨。
但是,当我到达使用我的 java 类的代码部分时,它似乎在我的 java 类中找不到任何函数。 我得到以下AttributeError
:
AttributeError: 'pos.Test' object has no attribute 'getName'
我们欢迎所有的建议! (下面的代码示例。)
爪哇代码:
package pos;
class Test{
private String name;
public Test(){
name = "TEST";
System.out.println( "Name = " + name );
}
public String getName(){
return name;
}
}
Jython 代码片段:
import pos.Test
...
test = pos.Test()
print 'Name = ', test.getName()
这是关于可见性。 您的课程是package-private 。 如果它会起作用
python.security.respectJavaAccessibility = false
已添加到 Jython 注册表中。 请参阅https://www.jython.org/registry.html 。
或者公开课程。
您必须先在 Jython 代码中导入 Java 类,然后才能使用它。 就像是:
from pos import Test
test = Test()
print 'Name = ', test.getName()
请参阅Jython Book 的第 8 章以了解导入路径等在 Jython 中的工作方式。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.