Jython提示“类没有可见构造函数”

5 投票
1 回答
2906 浏览
提问于 2025-04-16 00:07

我在一个大的应用程序中使用了一个Jython servlet,这个应用程序运行在tomcat5上。我测试了一些Spring框架的类,并在Jython servlet中创建了这些类的对象。当我尝试在应用程序中创建类的对象时,出现了一个异常信息:“没有可见的构造函数”。这些Java类确实有一个公共的构造函数,比如:

public SchoolImpl() { }

我在Python中创建对象:

from com.dc.sports.entity import SchoolImpl

...

school = SchoolImpl()

我到底做错了什么呢?

1 个回答

3

doublep / cluch 在评论中回答了这个问题 :-)

补充一点信息:

来自 Jython 常见问题解答:

3.3 为什么我不能执行一个 'protected' 或 'private' 的 Java 实例方法,或者访问 Java 包中的 'protected' 或 'private' 属性?

默认情况下,就像 Java 一样,这些方法是不能被外部访问的。要想访问所有 Java 的字段和方法,可以通过设置 python.security.respectJavaAccessibility 注册项来实现:

# Setting this to false will allow Jython to provide access to
# non-public fields, methods, and constructors of Java objects.
python.security.respectJavaAccessibility = false

撰写回答