我使用IntelliJ的重构工具将包的名称从oldName
更改为newName
。此包包含Guice提供程序绑定。重构后,主类抛出一个运行时异常:
Message: java.lang.ClassNotFoundException: project.oldName.missingClassProvider
在我的示例中,我已将oldName
重构为newName
。但该异常表明它仍在missingClassProvider
包中寻找oldName
。
似乎类路径已更新,因为我能够导入missingClassProvider
。但似乎有一个Guice数据容器没有被更新。
有人可以解释造成这种行为的原因吗?如何让Guice识别包名称的变化?
答案 0 :(得分:1)
可能不是Guice问题。 Guice不会在任何地方存储名称。它通常是在应用程序通过一个或多个模块启动时配置的运行时库。
我的猜测是关于一个损坏的构建。尝试清理并重建项目。如果您正在使用某种构建工具(Maven,gradle),请找到并执行 clean 目标。
如果您只使用IDEA尝试使用 Build>重建整个项目重建项目。