Почему IntelliJ говорит, что конструктор класса неверен несмотря на компиляцию? - PullRequest
1 голос
/ 11 марта 2012

Я пытаюсь создать экземпляр объекта, используя класс во внешнем банке. Это баночка, которую член команды разрабатывает и недавно изменил методы интерфейса.

Проблема в том, что IntelliJ по-прежнему считает, что конструктор класса должен принимать 4 аргумента (старый интерфейс), а не 3 (новый интерфейс).

Я могу гарантировать, что jar в зависимостях модуля является новой версией. Это также подтверждается тем фактом, что код успешно компилируется.

Итак, мой вопрос: почему IntelliJ все еще считает, что у меня должен быть старый интерфейс? Есть ли какой-то кеш, который не обновляется должным образом?

Прикрепленный скриншот демонстрирует проблему.

Спасибо.

Interface Error Screenshot

Ответы [ 4 ]

2 голосов
/ 11 марта 2012

Щелкните правой кнопкой мыши по вашему проекту и выберите Refresh. В вашем проекте используется скомпилированный jar, который изменился, но ваша IDE все еще использует старый скомпилированный jar, каким он был при его загрузке (даже если новый источник может быть виден в соответствующем проекте).

Eclipse имеет ту же проблему.

1 голос
/ 14 марта 2012

попробуйте переместить курсор в конструкторе, затем нажмите ctrl + b, он перейдет к объявлению конструктора, что даст вам возможность дважды проверить, является ли конструктор правильным или нет.

также вы можете попробовать "аннулировать кеш" в меню "файл", это очистит кеш и перестроит индекс для вашего проекта.

enter image description here

1 голос
/ 11 марта 2012

Вы также можете удалить все файлы из папок кэш и index , расположенных, например, здесь:путь) и попробуйте снова запустить IDE.

1 голос
/ 11 марта 2012

Возможно, информация об индексировании IntelliJ устарела, так как он не заметил, что вы переключили зависимость jar.

Эту проблему можно решить хотя бы путем перезапуска среды IDE, которая затем повторно сканирует и перестраивает индексы.

...