为什么IntelliJ说尽管编译了类构造函数不正确?

时间:2012-03-11 12:47:15

标签: java interface jar intellij-idea intellisense

我正在尝试使用外部jar中的类来实例化对象。这是团队成员正在开发的jar,最近更改了接口方法。

问题是IntelliJ仍然认为类构造函数应该采用4个参数(旧接口)而不是3(新接口)。

我可以保证模块依赖项中的jar是新版本。代码确实成功编译的事实进一步证实了这一点。

所以我的问题是,为什么IntelliJ仍然认为我应该拥有旧界面?它是否有某种缓存无法正确更新?

附加的屏幕截图演示了这个问题。

感谢。

Interface Error Screenshot

4 个答案:

答案 0 :(得分:2)

右键点击您的项目,然后选择Refresh。您的项目正在使用已更改的已编译jar,但您的IDE仍在使用旧编译的jar,就像加载它时一样(即使新的源可能在相关项目中可见)。

Eclipse有同样的问题。

答案 1 :(得分:1)

可能IntelliJ的索引信息已过期,因为它没有注意到您切换了jar依赖项。

这可以通过重新启动IDE来解决,然后重新扫描并重建索引。

答案 2 :(得分:1)

您还可以删除文件夹 caches index 中的所有文件,例如此处c:\ Documents and Settings \ User.IntelliJIdea \ system \(当然您可以有另一条路径)并尝试再次启动IDE。

答案 3 :(得分:1)

尝试在构造函数中移动光标,然后按ctrl + b,它将跳转到构造函数的声明,这将使您有机会仔细检查构造函数是否正确。

您也可以在“文件”菜单下尝试“使缓存无效”,这将清除项目的缓存和重建索引。

enter image description here