在我的 Java 类中 DBManager
我有一个方法
alterRights(int, HashMap<Integer,Right>)
在我的 JSP 文件中我这样做
HashMap<Integer,Right> radios = new HashMap<Integer,Right>();
然后我添加一些项目,然后我就这样做了
dbm.alterRights(alterKlausurID, radios);
( dbm
是 DBManager
的实例)
这里抛出了异常。它说:“DBManager 类型中的方法 alterRights(int, HashMap) 不适用于参数 (int, HashMap)”。在以前的版本中,该方法实际上是 alterRights(int, HashMap<Integer,String>)
,但我改变了它,它甚至有效,直到我改变了其他东西。我什至没有触及这个方法或与之相关的任何东西。对我来说,JSP 文件似乎加载了旧版本的 dbm
但我不知道这怎么可能。
最佳答案
这里常见的问题是 JSP 或 DBManager
在更改后未编译。
确保编译项目中的所有内容。如果您让应用程序服务器为您编译 JSP,请更改您的构建以将它们与其余代码一起编译(然后,您会在构建项目时遇到此类问题)。
同时,请阅读应用程序服务器的文档并了解如何刷新 JSP 编译缓存。很可能那里挂着旧版本的已编译 JSP。如果您无法弄清楚这一点,请取消部署您的应用程序,关闭应用程序服务器,重新启动它,然后再次部署。
关于java - 类型中的方法不适用于参数 - 但它应该是(jsp),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21000128/