这个问题在这里已经有了答案:
Cannot make a static reference to the non-static method
(8 个回答)
6年前关闭。
我有一个 JSP 应用程序,它带有一个普通的 java 类 Login.java 和一个 servlet,它在 doGet 方法中调用了一个名为 loginList 的过程。 loginList 过程需要使用名为 OAVDbUtil 的 java 类和方法“getLoginsList”创建登录列表。但是 Eclipse 似乎无法识别“getLoginsList”过程,当我输入它时,会给出“eclipse 无法对非静态方法进行静态引用”的消息。但是一切看起来都很好,因为我没有将 getLoginsList 声明为静态的。我认为有一种方法可以创建 OAVDbUtil 的实例以避免必须创建新 OAVdbUtil 对象的多个实例,但是有人可以告诉我如何做到这一点,而不是收到“eclipse 无法对非静态引用-静态方法”?
这是一些代码和屏幕转储
servlet 的屏幕转储
这是 OAVDbUtil 的代码
public OAVDbUtil(DataSource theDataSource) {
dataSource = theDataSource;
}
public List<Login> getLoginsList() throws Exception {
List<Login> loginList = new ArrayList<Login>();
最佳答案
您需要提供 OAVDbUtil
的实例到 servlet,然后调用 getLoginsList()
在那个物体上。
servlet 可以在其初始化方法中构造这样的对象,也可以通过容器将其注入(inject)到 servlet 中。
关于java - 如何创建可用于整个 servlet 的类的一个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37077246/